Popularity
5.5
Stable
Activity
0.0
Stable
559
14
43

Code Quality Rank: L4
Programming language: Objective-C
License: MIT License
Tags: UI    
Latest version: v0.0.1

WZDraggableSwitchHeaderView alternatives and similar libraries

Based on the "UI" category.
Alternatively, view WZDraggableSwitchHeaderView alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of WZDraggableSwitchHeaderView or a related project?

Add another 'UI' Library

README

WZDraggableSwitchHeaderView

Build Status Version

How far your thumb can reach on the iPhone 6 Plus ?

Or, being bored with tapping the button or navigation Item to switch between viewControllers ?

Quick Look

[](./GIF/WZAnimatingTransition.gif)

About

This project is inspired by Nike's awesome official App Making of Making Powered by NIKE MSI.

Installation

CocoaPods

# For latest release in CocoaPods
pod 'WZDraggableSwitchHeaderView'

Or

# Feeling adventurous? Get the latest on develop
pod 'WZDraggableSwitchHeaderView', :git => 'https://github.com/wongzigii/WZDraggableSwitchHeaderView.git', :branch => 'master'

Getting Start

#import "WZDraggableSwitchHeaderView.h"

Create an instance of WZDraggableSwitchHeaderView:

self.headerView = [[WZDraggableSwitchHeaderView alloc] initWithDelegate:self
                                                                  frame:CGRectMake(0,0,self.view.bounds.size.width,50)
                                                      normalStateHeight:20.0f
                                                 heightCanTriggerSwitch:70.0f];
[self.view addSubView:self.headerView];           

Implement the delegate method that will be invoked:

#pragma mark - WZDraggableSwitchHeaderViewDelegate

- (void)WZDraggableSwitchHeaderViewDidTriggerDeepDragging;
{
    [self.navigationController.view.layer addAnimation:[WZAnimatingTransition backwardTransition] forKey:@"transition"];
    [self.navigationController popToRootViewControllerAnimated:NO];
}

Hook on the UIScrollViewDelegate:

#pragma mark - UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [self.headerView WZDraggableSwitchHeaderViewDidScroll:scrollView];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    [self.headerView WZDraggableSwitchHeaderViewDidEndDragging:scrollView];
}

Done!

Customization

/// The y contentOffset range between normal state and shallow dragging state. If end dragging on this range, `- WZDraggableSwitchHeaderViewDidTriggerShallowDragging` will be invoked.
/// Default is 20.0f.
@property (nonatomic, assign) CGFloat normalStateHeight;

/// The total height of this header view will trace down with. End up dragging on the y contentOffset if less than `heightCanTriggerSwitch`, `- WZDraggableSwitchHeaderViewDidTriggerDeepDragging` will be invoked properly.
/// Default is 70.0f.
@property (nonatomic, assign) CGFloat heightCanTriggerSwitch;

/// The status label shows the text of state.
@property (nonatomic, strong) UILabel *statusLabel;

/// The button can be tapped to return to menu.
@property (nonatomic, strong) UIButton *backButton;

/// The layer of arrow Image.
@property (nonatomic, strong) CALayer *arrowImage;

/// The state of this headerView.
@property (nonatomic, assign) WZDraggableSwitchState state;

/// The text will show in normal state. Default is `ABOUT`.
@property (nonatomic, strong) NSString *normalStateText;

/// The text will show on shallow dragging state. Default is `PULL TO RETURN TO MENU.`
@property (nonatomic, strong) NSString *shallowStateText;

/// The text will show on deep dragging state. Default is `RELEASE TO RETURN TO MENU.`
@property (nonatomic, strong) NSString *deepStateText; 

Contact

Credits

Logo :

Font :

  • Fundamental Brigade Schwer Copyright (c) 2012 by Peter Wiegel.

License

WZDraggableSwitchHeaderView is available under the MIT license, see the [LICENCE](./LICENSE) file for more info.


*Note that all licence references and agreements mentioned in the WZDraggableSwitchHeaderView README section above are relevant to that project's source code only.