最近一直忙着做项目,时间紧任务重,客户比较任性,要求做一些比较个性的话的东西,关于alert一类的弹出框,客户的设计师觉得iOS系统的alert样式过于丑陋,强烈要求换成的他的设计。
从iOS 8开始,新加入的了UIAlertController中,
在过去还是UIAlertView的年代,自定义最简单的方法就是写一个View放到Window上,或者加在UIAlertView上面。最开始,我是选着写一个View加载Windows上面,但是由于旧工程里面的代码问题,视图会偶发的不响应点击事件,这就很尴尬了,一个弹出框不能消失,迫于这个工程太过于古老,很多东西现在看来都觉得冗余和不合理。就是简单给加项目功能,就不希望去过多修改过去的代码。这里最终选择的方式就是自定义的View加到UIAlertController上面去。
首先,看看UIAlertController有什么公开的属性和方法,
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertController : UIViewController
+ (instancetype)alertControllerWithTitle:(nullable NSString *)title message:(nullable NSString *)message preferredStyle:(UIAlertControllerStyle)preferredStyle;
- (void)addAction:(UIAlertAction *)action;
@property (nonatomic, readonly) NSArray<UIAlertAction *> *actions;
@property (nonatomic, strong, nullable) UIAlertAction *preferredAction NS_AVAILABLE_IOS(9_0);
- (void)addTextFieldWithConfigurationHandler:(void (^ __nullable)(UITextField *textField))configurationHandler;
@property (nullable, nonatomic, readonly) NSArray<UITextField *> *textFields;
@property (nullable, nonatomic, copy) NSString *title;
@property (nullable, nonatomic, copy) NSString *message;
@property (<