fix 个人信息
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
//
|
||||
// LYSDatePopViewController.m
|
||||
// LYSDatePickerController
|
||||
//
|
||||
// Created by HENAN on 2018/5/5.
|
||||
// Copyright © 2018年 liyangshuai. All rights reserved.
|
||||
//
|
||||
|
||||
#import "LYSDatePopViewController.h"
|
||||
|
||||
#define Rect(x,y,w,h) CGRectMake(x, y, w, h)
|
||||
#define ScreenWidth CGRectGetWidth([UIScreen mainScreen].bounds)
|
||||
#define ScreenHeight CGRectGetHeight([UIScreen mainScreen].bounds)
|
||||
|
||||
@interface LYSDatePopViewController ()
|
||||
|
||||
@property (nonatomic,strong,readwrite)LYSDateContentView *contentView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation LYSDatePopViewController
|
||||
|
||||
- (instancetype)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
|
||||
self.clickOuterHiddenEnable = YES;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
// self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2];
|
||||
// self.view.alpha = 0;
|
||||
// 设置内容视图
|
||||
[self initContentView];
|
||||
}
|
||||
|
||||
- (LYSDateContentView *)contentView
|
||||
{
|
||||
if (!_contentView) {
|
||||
_contentView = [[LYSDateContentView alloc] init];
|
||||
_contentView.backgroundColor = [UIColor whiteColor];
|
||||
_contentView.layer.shadowColor = [UIColor colorWithRed:238/255.0 green:238/255.0 blue:238/255.0 alpha:1].CGColor;
|
||||
_contentView.layer.shadowOffset = CGSizeMake(0, -3);
|
||||
_contentView.layer.shadowOpacity = 0.2;
|
||||
}
|
||||
return _contentView;
|
||||
}
|
||||
|
||||
// 设置内容视图
|
||||
- (void)initContentView
|
||||
{
|
||||
[self.view addSubview:self.contentView];
|
||||
}
|
||||
|
||||
// 动画显示contentView
|
||||
- (void)showAnimationContentViewWithCompletion:(void(^)(BOOL finished))completion
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:LYSDatePickerWillAppearNotifition object:nil];
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(pickerViewControllerWillAppear:)]) {
|
||||
[self.delegate pickerViewControllerWillAppear:(LYSDatePickerController *)self];
|
||||
}
|
||||
[self.contentView refreshContentHeight];
|
||||
CGFloat contentHeight = CGRectGetHeight(self.contentView.frame);
|
||||
CGFloat tabHeight = [self superExistTab] ? 49 : 0;
|
||||
[UIView animateWithDuration:0.2 delay:0 options:(UIViewAnimationOptionCurveEaseOut) animations:^{
|
||||
// self.view.alpha = 1;
|
||||
self.contentView.frame = Rect(0, ScreenHeight - contentHeight - tabHeight, ScreenWidth, contentHeight);
|
||||
} completion:^(BOOL finished) {
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:LYSDatePickerDidAppearNotifition object:nil];
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(pickerViewControllerDidAppear:)]) {
|
||||
[self.delegate pickerViewControllerDidAppear:(LYSDatePickerController *)self];
|
||||
}
|
||||
if (completion) {
|
||||
completion(finished);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
// 动画隐藏contentView
|
||||
- (void)hiddenAnimationContentViewWithCompletion:(void(^)(BOOL finished))completion
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:LYSDatePickerWillDisAppearNotifition object:nil];
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(pickerViewControllerWillDisAppear:)]) {
|
||||
[self.delegate pickerViewControllerWillDisAppear:(LYSDatePickerController *)self];
|
||||
}
|
||||
[self.contentView refreshContentHeight];
|
||||
CGFloat contentHeight = CGRectGetHeight(self.contentView.frame);
|
||||
[UIView animateWithDuration:0.2 delay:0 options:(UIViewAnimationOptionCurveEaseIn) animations:^{
|
||||
self.view.alpha = 0;
|
||||
self.contentView.frame = Rect(0, ScreenHeight, ScreenWidth, contentHeight);
|
||||
} completion:^(BOOL finished) {
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:LYSDatePickerDidDisAppearNotifition object:nil];
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(pickerViewControllerdidDisAppear:)]) {
|
||||
[self.delegate pickerViewControllerdidDisAppear:(LYSDatePickerController *)self];
|
||||
}
|
||||
if (completion) {
|
||||
completion(finished);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
// 弹出
|
||||
- (void)showDatePickerWithController:(UIViewController *)controller {
|
||||
[controller presentViewController:self animated:NO completion:^{
|
||||
[self showAnimationContentViewWithCompletion:nil];
|
||||
}];
|
||||
}
|
||||
|
||||
// 弹出
|
||||
+ (void)showDatePickerWithController:(UIViewController *)controller {
|
||||
[controller presentViewController:[[self class] shareInstance] animated:NO completion:^{
|
||||
[[[self class] shareInstance] showAnimationContentViewWithCompletion:nil];
|
||||
}];
|
||||
}
|
||||
|
||||
// 在UIWindow的根视图上弹出
|
||||
- (void)showDatePickerInWindowRootVC {
|
||||
[[[self class] windowRootViewController] presentViewController:self animated:NO completion:^{
|
||||
[self showAnimationContentViewWithCompletion:nil];
|
||||
}];
|
||||
}
|
||||
|
||||
// 在UIWindow的根视图上弹出
|
||||
+ (void)showDatePickerInWindowRootVC {
|
||||
[[[self class] windowRootViewController] presentViewController:[[self class] shareInstance] animated:NO completion:^{
|
||||
[[[self class] shareInstance] showAnimationContentViewWithCompletion:nil];
|
||||
}];
|
||||
}
|
||||
|
||||
// 隐藏
|
||||
- (void)hiddenDatePicker {
|
||||
[self hiddenAnimationContentViewWithCompletion:^(BOOL finished) {
|
||||
[self dismissViewControllerAnimated:NO completion:^{
|
||||
[[self class] shareRelease];
|
||||
}];
|
||||
}];
|
||||
}
|
||||
|
||||
// 隐藏
|
||||
+ (void)hiddenDatePicker {
|
||||
[[[self class] shareInstance] hiddenAnimationContentViewWithCompletion:^(BOOL finished) {
|
||||
[[[self class] shareInstance] dismissViewControllerAnimated:NO completion:^{
|
||||
[[self class] shareRelease];
|
||||
}];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
if (self.clickOuterHiddenEnable) {
|
||||
[self hiddenDatePicker];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)superExistTab
|
||||
{
|
||||
UIViewController *parentVC = self.presentingViewController;
|
||||
while (parentVC != nil && ![parentVC isKindOfClass:[UITabBarController class]]) {
|
||||
parentVC = parentVC.parentViewController;
|
||||
}
|
||||
return [parentVC isKindOfClass:[UITabBarController class]];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user