iOS开发问题记录

  1. pod install时的报错
CocoaPods could not find compatible versions for pod "SkeletonView"

报错截图.png

报错原因: SkeletonView最低支持的iOS版本是9.0,而CocoaPods最低支持的版本比9.0低。
解决办法: cocopods支持的最低版本改为第三方库最低支持的版本

platform :ios, '8.0' ->  platform :ios, '9.0'
  1. xcode报错
dyld: Library not loaded: /System/Library/Frameworks/UserNotificationsUI.framework/UserNotificationsUI

报错原因:UserNotificationsUI在iOS10以上的系统才能使用,在运行低版本系统的手机时会因为找不到该framework而crash。
解决办法:在xcode 中target -> Build Phases -> Link Binary With Libraries -> UserNotifications.framework 中status Required改为Optional
然后重新运行。搞定!

  1. 视图中的UIControlEventTouchDown事件响应延迟
  • 在iOS7之后系统添加了返回手势,手势的delaysTouchesBegan属性为YES。当按钮处在某些特定位置时触摸事件会先被这些系统的手势拦截,系统不响应才会继续分发,而按钮的UIControlEventTouchDown事件是需要立即响应的,所以会导致事件类型为UIControlEventTouchDown的响应有延迟.
    解决办法:
 - (void)viewDidAppear:(BOOL)animated {
          [super viewDidAppear:animated];
         //系统的返回手势不在Window的手势内所以要额外添加
          self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan=NO;
          for (UIGestureRecognizer *gesture in self.view.window.gestureRecognizers) {
          gesture.delaysTouchesBegan = NO;
          }
     }
  • 当按钮放在UIScrollVIew或者UITableView时,按下按钮系统会先判断是不是滑动事件,也会造成延迟响应。
    解决办法:
    UIScrollVIewdelaysContentTouchescanCancelContentTouches 两个属性都设置为NO

你可能感兴趣的:(iOS开发问题记录)