弹框的三种类(方式)

第一个类

UIAlertView:继承于UIView,类的对象为弹框。弹框在屏幕中央

弹提示控件的方法(弹框):提示控件为UIAlertView类型,创建一个UIAlertView类型的的对象后,使用VIAlertView对象的show方法,即可弹出创建的控件。控件控件可以使用该类的alloc、init方法。

第一个参数为标题,第二个参数为内容,第三个为代理,第四个参数为取消按钮的内容(文字会加粗,此按钮的tag == 0),第五个参数为其他按钮(按钮字体不会加粗,tag依次增加)。

- (instancetype)initWithTitle:(nullableNSString *)title message:(nullable NSString *)message delegate:(nullable id/**/)delegate cancelButtonTitle:(nullable NSString*)cancelButtonTitle otherButtonTitles:(nullable NSString *)otherButtonTitles,... NS_REQUIRES_NIL_TERMINATION NS_EXTENSION_UNAVAILABLE_IOS("UseUIAlertController instead.");

UIAlertViewDelegate:UIAlertView的代理需要遵守的协议,遵守代理协议,可实现以下方法,当点击相应的按钮时,执行的方法,其中的buttonIndex为被点击按钮的tag

-(void)alertView:(UIAlertView*) alertViewclickedButtonAtIndex:(NSInteger) buttonIndex NS_DEPRECATED_IOS(2_0, 9_0);

保存UIAlertView对象类型的属性:

@property(nonatomic,assign) UIAlertViewStylealertViewStyle NS_AVAILABLE_IOS(5_0); // Alert view style - defaults toUIAlertViewStyleDefault

枚举变量(

UIAlertViewStyleDefault默认值,不带文本框的样式

UIAlertViewStyleSecureTextInput带一个密码文本框,勾选了secure属性的文本框

UIAlertViewStylePlainTextInput一个普通的文本框

UIAlertViewStyleLoginAndPasswordInput带两个文本框,一个是普通的文本框,一个是密码文本框)

当有文本输入框时,根据按钮的tag返回对应的UITextField对象(前提是存在UITextField对象)

- (nullable UITextField*)textFieldAtIndex:(NSInteger)textFieldIndex NS_AVAILABLE_IOS(5_0);

// Retrieve a text field at an index

// The field at index 0 will be the firsttext field (the single field or the login field), the field at index 1 will bethe password field. */

第二个类

UIActionSheet :继承于UIView,类的对象为弹框,弹框在屏幕底部,显示时需要使用对象的show方法。

创建对象的方法:第一个参数为标题,第二个参数为代理,第三个参数为取消按钮内容,第四个参数为次要按钮内容,第五个参数为其他按钮。其按钮tag为从第四个参数依次增加,最后一个为tag为取消按钮的tag

- (instancetype)initWithTitle:(nullableNSString *)title delegate:(nullable id)delegatecancelButtonTitle:(nullable NSString *)cancelButtonTitledestructiveButtonTitle:(nullable NSString *)destructiveButtonTitleotherButtonTitles:(nullable NSString *)otherButtonTitles, ...NS_REQUIRES_NIL_TERMINATION NS_EXTENSION_UNAVAILABLE_IOS("UseUIAlertController instead.");

UIAlertViewDelegate:UIActionSheet代理需要遵守的协议,遵守代理协议,可实现以下方法,当点击相应的按钮时,执行的方法。其中的buttonIndex为被点击按钮的tag

- (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndexNS_DEPRECATED_IOS(2_0, 8_3) __TVOS_PROHIBITED;

UIAlertController :继承于UIViewController类,类的对象为弹框,

创建对象的方法:第一个参数为标题,第二个参数为内容,第三个参数为为显示的样式。

显示样式可选为UIAlertControllerStyleActionSheet\

UIAlertControllerStyleAlert两种中的一种

+(instancetype)alertControllerWithTitle:(nullable NSString *)titlemessage:(nullable NSString *)messagepreferredStyle:(UIAlertControllerStyle)preferredStyle;

为UIAlertController对象添加按钮时要声明UIAlertAction类的对象,并添加进当前的UIAlertController对象。方法为:参数为被添加的UIAlertAction对象。

- (void)addAction:(UIAlertAction *)action;

最后把创建的对象和按钮联系起来:调用方法的对象为当前的View(self),第二个参数可以写YES,第三个参数为block,当点击按钮时执行的代码,如果没有要执行的代码,则可写nil,在这个block中写代码时要注意内存管理,避免强指针的相互引用;

-(void)presentViewController:(UIViewController *)viewControllerToPresentanimated: (BOOL)flag completion:(void (^ __nullable)(void))completionNS_AVAILABLE_IOS(5_0);

UIAlertAction:继承于NSObject类。其创建的对象专门用于给UIAlertController对象添加按钮的类。

创建对象的方法:第一个参数为按钮标题,第二个参数为按钮类型,第三个参数为点击按钮后执行的代码。按钮类型有三种:UIAlertActionStyleDefault= 0(为默认类型黑色),UIAlertActionStyleCancel(加粗),UIAlertActionStyleDestructive(红色)

+ (instancetype)actionWithTitle:(nullableNSString *)title style:(UIAlertActionStyle)style handler:(void (^ __nullable)(UIAlertAction*action))handler;

你可能感兴趣的:(弹框的三种类(方式))