注意: 這里主要是對(duì)于scrollView和返回手勢的沖突處理
- 效果圖如下:
效果圖
- 全屏右滑pop返回請看 <a href="http://www.reibang.com/p/e183689ae80a">iOS開發(fā): 導(dǎo)航控制器 - 全屏右滑pop返回效果</a>
具體步驟
- 第一步: 定義LTScrollView類, 繼承自UIScrollView
- 第二部: 重寫scrollView的<a>-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer</a>方法即可
- 具體代碼如下
#import "LTScrollView.h"
@interface LTScrollView () <UIGestureRecognizerDelegate>
@end
@implementation LTScrollView
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
// 首先判斷otherGestureRecognizer是不是系統(tǒng)pop手勢
if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {
// 再判斷系統(tǒng)手勢的state是began還是fail虽风,同時(shí)判斷scrollView的位置是不是正好在最左邊
if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {
return YES;
}
}
return NO;
}
@end
- 最后, 只需要將使用的UIScollView類型換成LTScrollView類型即可