135 lines
4.1 KiB
Markdown
135 lines
4.1 KiB
Markdown
<img src="http://oo8l3jrvb.bkt.clouddn.com/0921_left_zhPopupController.png" alt="zhPopupController" title="zhPopupController">
|
||
|
||
[![Language](https://img.shields.io/badge/Language-%20Objective--C%20-orange.svg)](https://travis-ci.org/snail-z/zhPopupController)
|
||
[![Version](https://img.shields.io/badge/pod-v1.0.3-brightgreen.svg)](http://cocoapods.org/pods/zhPopupController)
|
||
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://cocoapods.org/pods/zhPopupController)
|
||
[![Platform](https://img.shields.io/badge/platform-%20iOS8.0+%20-lightgrey.svg)](http://cocoapods.org/pods/zhPopupController)
|
||
|
||
Popup your custom view is easy, support custom mask style, transition effects and gesture to drag.
|
||
|
||
|
||
|
||
## Example
|
||
|
||
To run the example project, clone the repo, and run `pod install` from the Example directory first.
|
||
|
||
## Requirements
|
||
|
||
- Requires iOS 8.0 or later
|
||
- Requires Automatic Reference Counting (ARC)
|
||
|
||
## Installation
|
||
|
||
zhPopupController is available through [CocoaPods](http://cocoapods.org). To install
|
||
it, simply add the following line to your Podfile:
|
||
|
||
```ruby
|
||
platform :ios, '8.0'
|
||
use_frameworks!
|
||
|
||
target 'You Project' do
|
||
|
||
pod 'zhPopupController', '~> 1.0'
|
||
|
||
end
|
||
```
|
||
|
||
## Preview
|
||
|
||
<img src="htt://github.com/snail-z/zhPopupController/blob/master/Preview/_zhPopupController.gif?raw=true" width="204px" height="365px">
|
||
|
||
## Usage
|
||
|
||
* Direct use of zh_popupController popup your custom view.
|
||
``` objc
|
||
[self.popupController showInView:self.view.window completion:NULL];
|
||
```
|
||
|
||
* Customize.
|
||
```objc
|
||
_popupController = [[zhPopupController alloc] initWithView:customView size:alert.bounds.size];
|
||
_popupController.presentationStyle = zhPopupSlideStyleTransform;
|
||
_popupController.presentationTransformScale = 1.25;
|
||
_popupController.dismissonTransformScale = 0.85;
|
||
// ...
|
||
[_popupController showInView:self.view.window completion:NULL];
|
||
```
|
||
|
||
- Support dismiss automatically.
|
||
|
||
```objc
|
||
/// The view will disappear after `dismissAfterDelay` seconds,default is 0 will not disappear
|
||
@property (nonatomic, assign) NSTimeInterval dismissAfterDelay;
|
||
```
|
||
|
||
-----
|
||
|
||
- Update
|
||
|
||
Observe to keyboard changes will change contentView layout
|
||
|
||
New **`keyboardOffsetSpacing`** properties. You can through it adjust the spacing relative to the keyboard when the keyboard appears. default is 0, The pan gesture will be invalid when the keyboard appears.
|
||
|
||
|
||
|
||
If you want to make the animation consistent:
|
||
|
||
You need to call the method "becomeFirstResponder()" in "willPresentBlock", don't call it before that.
|
||
|
||
You need to call the method "resignFirstResponder()" in "willDismissBlock".
|
||
|
||
```objc
|
||
/// default is NO. if YES, Will adjust view position when keyboard changes
|
||
@property (nonatomic, assign) BOOL keyboardChangeFollowed;
|
||
|
||
/// default is NO. if the view becomes first responder,you need set YES to keep the animation consistent
|
||
@property (nonatomic, assign) BOOL becomeFirstResponded;
|
||
```
|
||
|
||
```objc
|
||
_popupController.becomeFirstResponded = YES;
|
||
_popupController.keyboardChangeFollowed = YES;
|
||
_popupController.willPresentBlock = ^(zhPopupController * _Nonnull popupController) {
|
||
[textField becomeFirstResponder];
|
||
};
|
||
|
||
_popupController.willDismissBlock = ^(zhPopupController * _Nonnull popupController) {
|
||
[textField resignFirstResponder];
|
||
};
|
||
|
||
//...
|
||
[_popupController show];
|
||
```
|
||
|
||
<img src="https://github.com/snail-z/zhPopupController/blob/master/Preview/_zhPopupController_up.gif?raw=true" width="204px" height="365px">
|
||
|
||
|
||
|
||
-----
|
||
|
||
- Update
|
||
|
||
- Support present/dismiss slide style
|
||
|
||
- When system is larger than iOS 8 will use of UIVisualEffectView to do mask blur effect.
|
||
|
||
<img src="https://github.com/snail-z/zhPopupController/blob/master/Preview/_zhPopupController_ios11.gif?raw=true?raw=true" width="216px" height="427px">
|
||
|
||
-----
|
||
|
||
- Update **(November 20, 2017 v1.0.2)**
|
||
- New method `- (void)fadeDismiss` for fade out of your content view.
|
||
|
||
- In 1.0.2 `zhPopupSlideStyleShrinkInOut` will be deprecated, You should use `zhPopupSlideStyleShrinkInOut1` or `zhPopupSlideStyleShrinkInOut2`
|
||
|
||
|
||
## Author
|
||
|
||
snail-z, haozhang0770@163.com
|
||
|
||
## License
|
||
|
||
zhPopupController is available under the MIT license. See the LICENSE file for more info.
|
||
|
||
|