inamiy / YIFullScreenScroll

Pinterest-like scroll-to-fullscreen UI for iOS5+.
http://www.cocoacontrols.com/controls/yifullscreenscroll
214 stars 27 forks source link

YIFullScreenScroll 1.4.0

Pinterest-like scroll-to-fullscreen UI for iOS5+ (including iOS7).

ScreenShot1

Architecture

Install via CocoaPods

pod 'YIFullScreenScroll'

How to use

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.fullScreenScroll = [[YIFullScreenScroll alloc] initWithViewController:self scrollView:self.tableView style:YIFullScreenScrollStyleFacebook];
    self.fullScreenScroll.delegate = self;
    self.fullScreenScroll.shouldShowUIBarsOnScrollUp = NO;

//    self.fullScreenScroll.shouldHideNavigationBarOnScroll = NO;
//    self.fullScreenScroll.shouldHideToolbarOnScroll = NO;
//    self.fullScreenScroll.shouldHideTabBarOnScroll = NO;
}

// implement below to further adjust your custom UI-bar's layout
- (void)fullScreenScrollDidLayoutUIBars:(YIFullScreenScroll*)fullScreenScroll 
{
    CGRect newFrame = self.customBar.frame;

    // Grab navigationBar's frame using UIView's converting method e.g. -convertRect:toView: to adjust your customView's position on your own.
    newFrame.origin.y = ...

    self.customBar.frame = newFrame;
}

Style

typedef NS_ENUM(NSInteger, YIFullScreenScrollStyle) {
    YIFullScreenScrollStyleDefault,     // no statusBar-background when navBar is hidden
#if defined(__IPHONE_7_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0    
    YIFullScreenScrollStyleFacebook,    // like facebook ver 6.0, remaining navBar for statusBar-background in iOS7
#endif
};

UISearchDisplayController issue

If you are using UISearchDisplayController in iOS7, there is a searchBar-bug that doesn't respond to touches when you slightly scrolled down (about searchBar height) and then activate searchDisplayController. To prevent it, call below method on -searchBarShouldBeginEditing:.

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    // NOTE: this code is needed for iOS7
    [self.fullScreenScroll adjustScrollPositionWhenSearchDisplayControllerBecomeActive];

    return YES;
}

Dependencies

License

YIFullScreenScroll is available under the Beerware license.

If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.