本文自定义弹窗为KendamiView,基于UIViewController类
@interface KendamiView : UIViewController
类中需添加UIWindow属性
KendamiView初始化
@interface KendamiView : UIViewController
类中需添加UIWindow属性
@property (nonatomic, strong) UIWindow *showWindow;
KendamiView初始化
- (instancetype)init {
self = [super init];
if (self) {
self.view.frame = [UIScreen mainScreen].bounds;
self.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.3f];
//加载子视图
[self drawView];
}
return self;
}
显示KendamiView界面
UIWindow *newWindow = [[UIWindow alloc]initWithFrame:self.view.bounds];
newWindow.rootViewController = self;
[newWindow makeKeyAndVisible];
self.showWindow = newWindow;
//显示动画
_paymentAlert.transform = CGAffineTransformMakeScale(1.21f, 1.21f);
_paymentAlert.alpha = 0;
[UIView animateWithDuration:.7f delay:0.f usingSpringWithDamping:.7f initialSpringVelocity:1 options:UIViewAnimationOptionCurveEaseInOut animations:^{
[_pwdTextField becomeFirstResponder];
_paymentAlert.transform = CGAffineTransformMakeScale(1.0f, 1.0f);
_paymentAlert.alpha = 1.0;
} completion:nil];
关闭KendamiView界面
[UIView animateWithDuration:0.3f animations:^{
_paymentAlert.transform = CGAffineTransformMakeScale(1.21f, 1.21f);
_paymentAlert.alpha = 0;
self.showWindow.alpha = 0;
} completion:^(BOOL finished) {
[self.showWindow removeFromSuperview];
[self.showWindow resignKeyWindow];
self.showWindow = nil;
}];