最近写了一个自定义弹框,模仿系统UIAlertController,记录一下。
对于弹框,很多情况下还是习惯于写个UIView,但是系统都已经抛弃UIAlertView了,对UIAlertController,内容可能又不符合自己的需求,这。。。好吧,写一个吧。
ok,咱需要一个控制器,MineAlertController,继承自UIViewController,需要一个初始化方法:
+(MineAlertController *)alertWithTitle:(NSString *)title message:(NSString *)message handle:(void (^)())handle;
之所以用类方法创建,是因为我们需要对这个控制器做一些处理,至于参数,根据自己需要调整吧,好了,到这里,重点来了,弹出模式呢?
找找控制器的modalPresentationStyle,有个UIModalPresentationOverCurrentContext,做什么的呢,字面意思就是透过当前上下文,这就是我们需要的,浮在当前控制器之上。
+(MineAlertController *)alertWithTitle:(NSString *)title message:(NSString *)message handle:(void (^)())handle{
MineAlertController *controller = [[MineAlertController alloc] init];
contriller.title = title;
...
controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
//主要是这三句
controller.definesPresentationContext = YES;
controller.providesPresentationContextTransitionStyle = YES;
controller.modalPresentationStyle = UIModalPresentationOverCurrentContext;
return controller;
}
剩下的就是控制器显示的内容样式了,根据需要写了。