- 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'
- 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
然后重新运行。搞定!
- 视图中的
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时,按下按钮系统会先判断是不是滑动事件,也会造成延迟响应。
解决办法:
将UIScrollVIew的delaysContentTouches、canCancelContentTouches两个属性都设置为NO;