前言
在頁面上加載了手勢操作后右犹,再去調(diào)用控件的方法,有時候會導(dǎo)致控件的某項方法失效壶愤,舉個例子:在加載 tap(UITapGestureRecognizer)手勢之后对雪,UISlider的touchUpInside方法就不這么靈敏了。
解決
解決的方法其實很簡單当犯,在給手勢綁定代理UIGestureRecognizerDelegate垢村,并在代理的方法中判斷就可以了。代理方法如下:
gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
OC 使用方式如下:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UISlider class]]) {
return NO;
}
return YES;
}
Swift 使用方式如下:
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if (touch.view?.isKind(of: UISlider.self))! {
return false
}else {
return true
}
}