Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heathwang/hwpopcontroller
pop up your ViewController with custom size, position and animations
https://github.com/heathwang/hwpopcontroller
animation ios ios-ui objective-c popup
Last synced: 20 days ago
JSON representation
pop up your ViewController with custom size, position and animations
- Host: GitHub
- URL: https://github.com/heathwang/hwpopcontroller
- Owner: HeathWang
- License: mit
- Created: 2019-05-21T03:09:25.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-13T06:57:26.000Z (over 3 years ago)
- Last Synced: 2024-12-10T20:23:55.493Z (29 days ago)
- Topics: animation, ios, ios-ui, objective-c, popup
- Language: Objective-C
- Homepage: https://github.com/HeathWang/HWPopController
- Size: 14 MB
- Stars: 140
- Watchers: 4
- Forks: 26
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.
**My another project for pop view from bottom:**[**HWPanModal**](https://github.com/HeathWang/HWPanModal)
## Screen Shot
## 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](https://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
pod 'HWPopController', '~> 1.0.5'
```## How to use
1. Create you popup UIViewController.
1. import HWPopController framework
2. config `contentSizeInPop` and `contentSizeInPopWhenLandscape`(if you want to support landscape)```Objective-C
#import "HWPop1ViewController.h"
#import
@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.
}
```
1. Popup your viewControllerIf you want high custom your popup, init HWPopController. Then config the properties what you want.
Please see `HWPopController.h`
```Objective-C
{
HWPop1ViewController *pop1ViewController = [HWPop1ViewController new];
HWPopController *popController = [[HWPopController alloc] initWithRootViewController:pop1ViewController];
// popView position
popController.popPosition = HWPopPositionTop;
[popController presentInViewController:self];
}
```
Quick popup, use the UIViewController category.
```Objective-C
HWPop1ViewController *pop1ViewController = [HWPop1ViewController new];
[pop1ViewController popupWithPopType:HWPopTypeGrowIn dismissType:HWDismissTypeGrowOut dismissOnBackgroundTouch:YES];
```
1. Dismiss pop
Use native api.
```Objective-C
[self dismissViewControllerAnimated:YES completion:^{
}];
```
Get popController, then call popController dismiss api.
```Objective-C
[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**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]
## License
**HWPopController** is available under the MIT license. See the LICENSE file for more info.