YUFullscreenGesture 1.2

YUFullscreenGesture 1.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2017年3月

yuzhidu 维护。



  • 马裕博

全屏加返回手势,支持 iOS 7.0 及以上系统

一、支持 CocoPods

pod 'YUFullscreenGesture'

二、方法

1.禁用 navigation controller 的 pop 手势

navigationController.yu_fullscreenPopGestureRecognizer.enabled = NO;

2.禁用 view controller 的 pop 手势

viewController.yu_interactivePopDisabled = YES;

3.隐藏导航条

现在不需要使用 -setNavigationBarHidden:animated: 来隐藏导航栏了,以下方法是替代方案:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.yu_prefersNavigationBarHidden = NO;
}

4.带 scrollView 的页面

重写此方法,当 scrollView 的 x 偏移量不大于 0 时,手势将生效。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    if (self.contentOffset.x <= 0) {
        if ([otherGestureRecognizer.delegate isKindOfClass:NSClassFromString(@"_YUFullscreenPopGestureRecognizerDelegate")]) {
            return YES;
        }
    }
    return NO;
}

三、例子

1.bar -> bar

snapshot

在第一个例子中,当 Push a VC with bar 继承了框架时,就会拥有这项基本功能。

2.bar -> without bar 和 without bar -> bar

snapshot

在第二个例子中,隐藏了导航栏,但仍然可以正常使用。

3.带 scrollWith

snapshot

scrollView 将会响应手势,因此需要重写:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

在 scrollView 的 x 偏移量不大于零时,使用我们框架的 pop 手势。

4.带 scrollView 和 tableView

snapshot

这种情况很常见,但与例子 3 没有本质区别。