HWPopController
HWPopController can popup UIViewController with multiple animations, custom pop size in portrait / landscape screen. Popup position can be top/center/bottom. And you can define your own popup animations.
Features
- Support popup UIViewController.
- Support popup UINavigationController, dynamic change pop size when you push/pop.
- Support 12 kinds of pop & dismiss animations.
- Support define your own custom animation for pop & dismiss.
- Support popup at top/center/bottom, and use
positionOffset
to adjust x,y coordinates.
Compatibility
iOS 8.0+, support Objective-C & Swift.
Installation
HWPopController is available through CocoaPods. To install
it, simply add the following line to your Podfile:
pod 'HWPopController', '~> 1.0.5'
How to use
-
Create you popup UIViewController.
- import HWPopController framework
- config
contentSizeInPop
andcontentSizeInPopWhenLandscape
(if you want to support landscape)
#import "HWPop1ViewController.h" #import <HWPopController/HWPop.h> @interface HWPop1ViewController () @end @implementation HWPop1ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.contentSizeInPop = CGSizeMake(250, 300); self.contentSizeInPopWhenLandscape = CGSizeMake(300, 200); // build you pop view. }
-
Popup your viewController
If you want high custom your popup, init HWPopController. Then config the properties what you want.
Please seeHWPopController.h
{ HWPop1ViewController *pop1ViewController = [HWPop1ViewController new]; HWPopController *popController = [[HWPopController alloc] initWithRootViewController:pop1ViewController]; // popView position popController.popPosition = HWPopPositionTop; [popController presentInViewController:self]; }
Quick popup, use the UIViewController category.
HWPop1ViewController *pop1ViewController = [HWPop1ViewController new]; [pop1ViewController popupWithPopType:HWPopTypeGrowIn dismissType:HWDismissTypeGrowOut dismissOnBackgroundTouch:YES];
-
Dismiss pop
Use native api.[self dismissViewControllerAnimated:YES completion:^{ }];
Get popController, then call popController dismiss api.
[self.popController dismiss];
Pop UINavigationController
If you want pop UINavigationController, and every stacked UIViewController contentSize is not same. You can use HWPopNavigationController
.
HWPopNavigationController
subclass UINavigationController
, you can inherit from HWPopNavigationController
, config contentSizeInPop as default contentSize.
When you push A Controller, then Push B Controller. A, B Controller should config contentSizeInPop if you need. If you have not config it, we will use NavigationController contentSizeInPop.
Relationship:
- UINavigationController
- HWPopNavigationController
- Your custom UINavigationController inherit from HWPopNavigationController
- HWPopNavigationController
More details, pls see the Example.
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
Author
HeathWang, [email protected]