UIAlertView使用全解

来源:互联网 发布:打开淘宝商品链接 编辑:程序博客网 时间:2024/04/28 20:40

举例:

UIAlertView *alertView= [[UIAlertView alloc] initWithTitle:@"Default Alert View" message:@"Defalut"delegate:selfcancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",nil];

UIAlertView使用全解
标准的双按钮,cancel那个buttonIndex 为0, ok button 的buttonIndex为1


UIAlertView *alertView =[[UIAlertView allocinitWithTitle:@"Default Alert View"message:@"Defalut" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",@“ThirdButton”, nil];
UIAlertView使用全解
和程序里的顺序一样,cancel   ok  thirdButton 的buttonIndex 分别为0 1 2


UIAlertView*alertView = [[UIAlertView allocinitWithTitle:@"Default Alert View"message:@"Defalut" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",@“ThirdButton”, nil];
UIAlertView使用全解

同理,cancel   ok  thirdButton FourthButton的buttonIndex 分别为0 1 23

[alertView show];


UIAlertView Delegate
- (void)alertView:(UIAlertView *)alertViewclickedButtonAtIndex:(NSInteger)buttonIndex
alertView--->这个不用多说了吧
buttonIndex---->从0开始
可以通过if (buttonIndex == 1) { } 这样的来控制点击了某个按钮需要做什么操作

- (void)alertView:(UIAlertView *)alertViewdidDismissWithButtonIndex:(NSInteger)buttonIndex
这个方法在动画结束和视图隐藏之后调用

- (void)alertView:(UIAlertView*)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
这个方法在动画开始和视图隐藏之前调用

-(void)alertViewCancel:(UIAlertView *)alertView
在视图将要被取消之前
例如,用户点击了home键
三个函数的调用顺序依次是:
alertViewCancel----》willDismissWithButtonIndex---》didDismissWithButtonIndex

-(BOOL)alertViewShouldEnableFirstOtherButton(UIAlertView*)alertView
ios 5+
设置yes / no 将会设置alertView 的第一个otherButton的enable属性

-(void)didPresentAlertView:(UIAlertView *)alertView
在视图提交给用户以后调用

(void)willPresentAlertView:(UIAlertView*)alertView
在视图提交给用户以前调用

这六个delegate 方法调用的顺序依次是
alertViewShouldEnableFirstOtherButton---->willPresentAlertView--->didPresentAlertView
---->clickedButtonAtIndex---->(如果会触发视图取消,则会调用alertViewCancel)willDismissWithButtonIndex---->didDismissWithButtonIndex

ios4.0以后alertView不会自动随着程序转向后台而移除
alertView属性
1.alertViewStyle:
UIAlertViewStyleDefault只弹信息和按钮
UIAlertViewStyleSecureTextInput有一个textfield加密框
UIAlertViewStylePlainTextInput有一个不加密的textfield
UIAlertViewStyleLoginAndPasswordInput有两个textfield,Login和password

只要有textfield就可以用textfieldAtIndex来捕获并进行相应的操作例如换键盘类型

2.cancelButtonIndex
开始是0,如果没有设置cancel button 则是-1

3.delegate
如果没有设置则是nil

4.firstOtherButtonIndex
从0开始,如果没设置则是-1,而且没被设置则会被忽略

5.message 
消息

6.numberOfButtons
只读 alertView中的按钮数量

7.title
标题

8.visible
只读  如果是yes表示被显示

实例方法
-(NSInteger)addButtonWithTitle:(NSString *)title
返回值是增加的Button的index

- (NSString*)buttonTitleAtIndex:(NSInteger)buttonIndex
输入buttonIndex 返回button的标题

-(void)dismissWithClickedButtonIndex:(NSInteger)buttonIndexanimated:(BOOL)animated
程序自动完成点击buttonIndex的button 并dismiss整个alertView的操作

- (id)initWithTitle:(NSString*)title message:(NSString)message delegate:(id)delegatecancelButtonTitle:(NSString *)cancelButtonTitleotherButtonTitle:(NSString *)otherButtonTitles, ...
这个就不用多说了

- (void)show
要显示必须要调用这个alertview才会显示

-  (UITextField*)textfieldAtIndex:(NSInteger)textfieldIndex
返回值是textfield
UIAlertViewStyleDefault 没有
UIAlertViewStyleSecureInputtextfieldIndex 只有一个为0
UIAlertViewStylePlainInputtextfieldIndex 只有一个为0
UIAlertViewStyleLoginAndPasswordInput textfieldIndex有两个 0 1
原创粉丝点击