Need help with FDFullscreenPopGesture?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

forkingdog
5.8K Stars 1.1K Forks MIT License 39 Commits 105 Opened issues

Description

A UINavigationController's category to enable fullscreen pop gesture with iOS7+ system style.

Services available

!
?

Need anything else?

Contributors list

No Data

FDFullscreenPopGesture

An UINavigationController's category to enable fullscreen pop gesture in an iOS7+ system style with AOP.

Overview

snapshot

这个扩展来自 @J_雨 同学的这个很天才的思路,他的文章地址:http://www.jianshu.com/p/d39f7d22db6c

Usage

AOP, just add 2 files and no need for any setups, all navigation controllers will be able to use fullscreen pop gesture automatically.

To disable this pop gesture of a navigation controller:

navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;

To disable this pop gesture of a view controller:

viewController.fd_interactivePopDisabled = YES;

Require at least iOS 7.0.

View Controller Based Navigation Bar Appearance

It handles navigation bar transition properly when using fullscreen gesture to push or pop a view controller:

  • with bar -> without bar
  • without bar -> with bar
  • without bar -> without bar

snapshot with bar states

This opmiziation is enabled by default, from now on you don't need to call UINavigationController's

-setNavigationBarHidden:animated:
method, instead, use view controller's specific API to hide its bar:
- (void)viewDidLoad {
    [super viewDidLoad];
    self.fd_prefersNavigationBarHidden = NO;
}

And this property is NO by default.

View Controller With ScrollView

If you want to use fullscreen pop gesture in ViewController with scrollView or subclass of scrollView , you should customize the scrollView or subclass of scrollView and overload the

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

Installation

Use CocoaPods

pod 'FDFullscreenPopGesture', '1.1'

Release Notes

1.1 - View controller based navigation bar appearance and transition.
1.0 - Fullscreen pop gesture.

License

MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.