@@ -31,7 +31,9 @@ void swizzleUIImageMethod(SEL originalAction, SEL swizzledAction) {
3131void init_hookUIKitConstructor (void ) {
3232 swizzle (UIDevice.class , @selector (userInterfaceIdiom ), @selector (hook_userInterfaceIdiom ));
3333 swizzle (UIImageView.class , @selector (setImage: ), @selector (hook_setImage: ));
34- swizzle (UIPointerInteraction.class , @selector (_updateInteractionIsEnabled ), @selector (hook__updateInteractionIsEnabled ));
34+ if (UIDevice.currentDevice .userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
35+ swizzle (UIPointerInteraction.class , @selector (_updateInteractionIsEnabled ), @selector (hook__updateInteractionIsEnabled ));
36+ }
3537
3638 // Add this line to swizzle the _imageWithSize: method
3739 swizzleUIImageMethod (NSSelectorFromString (@" _imageWithSize:" ), @selector (hook_imageWithSize: ));
@@ -211,8 +213,12 @@ @implementation UIPointerInteraction(hook)
211213- (void )hook__updateInteractionIsEnabled {
212214 UIView *view = self.view ;
213215 BOOL enabled = self.enabled ; // && view.traitCollection.userInterfaceIdiom == UIUserInterfaceIdiomPad
214- for (id <_UIPointerInteractionDriver> driver in self.drivers ) {
215- driver.view = enabled ? view : nil ;
216+ if ([self respondsToSelector: @selector (drivers )]) {
217+ for (id <_UIPointerInteractionDriver> driver in self.drivers ) {
218+ driver.view = enabled ? view : nil ;
219+ }
220+ } else {
221+ self.driver .view = enabled ? view : nil ;
216222 }
217223 // to keep it fast, ivar offset is cached for later direct access
218224 static ptrdiff_t ivarOff = 0 ;
0 commit comments