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