iOS手势全屏滑动返回
生活随笔
收集整理的這篇文章主要介紹了
iOS手势全屏滑动返回
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
iOS系統(tǒng)是自帶側(cè)滑返回的,但一定要是邊緣返回,不是全屏,可能是手勢沖突的的原因,蘋果肯定是有自己的考慮。但是開發(fā)者們,思路開闊,開發(fā)了全屏滑動返回的效果,和大家分享一種最簡單有效的方案。
首先,自定義一個NavigationController繼承UINavigationController,然后添加自定義的手勢調(diào)用系統(tǒng)自帶的滑動手勢的action方法,實現(xiàn)代碼:
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.//右滑返回//獲取系統(tǒng)自帶滑動手勢的target對象id target = self.interactivePopGestureRecognizer.delegate;//創(chuàng)建全屏滑動手勢,調(diào)用系統(tǒng)自帶滑動手勢的target的action方法SEL handler = NSSelectorFromString(@"handleNavigationTransition:");UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:handler];pan.delegate = self;//添加全屏滑動手勢[self.interactivePopGestureRecognizer.view addGestureRecognizer:pan];self.interactivePopGestureRecognizer.delegate = self; }然后在手勢代理中要排除掉左滑,根控制器,返回中等情況,從而實現(xiàn)全屏右滑返回:
#pragma - Gesture delegate - (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {//控制器棧里只有一個,不響應(yīng)if (self.viewControllers.count <= 1) {return NO;}//當(dāng)控制器正在返回的時候,不響應(yīng)if ([[self valueForKey:@"_isTransitioning"] boolValue]) {return NO;}//只能響應(yīng)從左到右的滑動CGPoint translation = [gestureRecognizer translationInView:gestureRecognizer.view];if (translation.x <= 0) {return NO;}return YES; }總結(jié)
以上是生活随笔為你收集整理的iOS手势全屏滑动返回的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 珠海半导体公司招聘
- 下一篇: Linux驱动小技巧 | 利用DRIVE