我們有時候會遇到當兩個手勢(UIGestureRecognizer)放在不同view上,滑動公共區(qū)域時,只能響應(yīng)上面view的手勢。
那怎么修改它們的響應(yīng)優(yōu)先級或者同時讓它們都響應(yīng)呢?
1.修改響應(yīng)優(yōu)先級
UIGestureRecognizer類中有兩個方法
//讓自身這個手勢事件響應(yīng)優(yōu)先級低于其它手勢事件
//只是在對于比它響應(yīng)優(yōu)先級低的手勢調(diào)用
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
//讓自身這個手勢事件響應(yīng)優(yōu)先級高于其它手勢事件
//只是在對于比它響應(yīng)優(yōu)先級高的手勢調(diào)用
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
還有一種是直接對兩個手勢
//讓gestureTwo響應(yīng)優(yōu)先級低于gestureOne
[gestureTwo requireGestureRecognizerToFail:gestureOne];
2.同時響應(yīng)
//共存 A手勢或者B手勢 代理方法里shouldRecognizeSimultaneouslyWithGestureRecognizer 有一個是返回YES,就能共存
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
最后時測試代碼IOSStudyTest