你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS開發:UIAlertView使用

IOS開發:UIAlertView使用

編輯:關於IOS

UIAlertView是什麼就不介紹了

1.基本用法

1 UIAlertView *view = [[UIAlertView alloc]initWithTitle:@"Test"    //標題
2                                               message:@"this is a alert view "   //顯示內容
3                                              delegate:nil          //委托,可以點擊事件進行處理
4                                     cancelButtonTitle:@"取消"
5                                     otherButtonTitles:@"確定"
6                                                     //,@"其他",    //添加其他按鈕
7                                  nil];
8 [view show];效果圖:

IOS開發:UIAlertView使用

2.多個按鈕

取消上面代碼@“其他”的注釋後,運行效果如下

 

IOS開發:UIAlertView使用

可以以此類推,添加多個

3.一些系統樣式參數

UIAlertViewStyle這個枚舉提供了幾個樣式

1 typedef NS_ENUM(NSInteger, UIAlertViewStyle) {
2     UIAlertViewStyleDefault = 0,            //缺省樣式
3     UIAlertViewStyleSecureTextInput,         //密文輸入框
4     UIAlertViewStylePlainTextInput,          //明文輸入框
5     UIAlertViewStyleLoginAndPasswordInput      //登錄用輸入框,有明文用戶名,和密文密碼輸入二個輸入框
6 };

使用代碼如下:

1     UIAlertView *view = [[UIAlertView alloc]initWithTitle:@"請等待"    //標題
2                                                   message:@"this is a alert view "   //顯示內容
3                                                  delegate:nil                //委托,可以點擊事件進行處理
4                                         cancelButtonTitle:@"取消"
5                                         otherButtonTitles:@"確定",
6                                                     //,@"其他",    //添加其他按鈕
7                          nil];
8 [view setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];   //控制樣式效果圖:

 

IOS開發:UIAlertView使用

這是參數為:UIAlertViewStyleLoginAndPasswordInput  效果圖,其他的自行查看

不過這幾個類型,我個人覺得太丑了,不能接受,便自定義了個彈出框,用來接受輸入

 

 

IOS開發:UIAlertView使用

IOS開發:UIAlertView使用

實現也不難,有需要的朋友可以聯系我

4.判斷用戶點了哪個按鈕

UIAlertView的委托UIAlertViewDelegate ,實現該委托來實現點擊事件,如下:

.h文件

1 @interface ViewController : UIViewController<UIAlertViewDelegate> {
2
3 }

在.m實現委托的方法

1 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
2 {
3     NSString* msg = [[NSString alloc] initWithFormat:@"您按下的第%d個按鈕!",buttonIndex];
4     NSLog(@"%@",msg);
5 }在這個方法中的參數 buttonIndex,表示的是按鈕的索引,上圖的三按鍵 “取消”,“確定”,“其他”對應的索引分別為“0”,“1”,“2”.

用Delegate的方式處理點擊時候,會帶來一個問題比較麻煩,比如在一個頁面裡,有好幾個UIAlertView的時候,處理點擊的時候,會增加處理邏輯的復雜度,得做一些判斷

這種情況有一個解決辦法,就是用Block,添加Block的回調,代替Delegate,target和selector.(下次展開寫這個內容)

5.添加子視圖

這個用得也是比較多的,貼幾個使用實例

添加 UIActivityIndicatorView

 

IOS開發:UIAlertView使用

 

實現代碼:

1     UIAlertView *view = [[UIAlertView alloc]initWithTitle:@"請等待"
2                                                   message:nil
3                                                  delegate:nil
4                                         cancelButtonTitle:nil
5                                         otherButtonTitles:nil,
6                                                           nil];
7
8     UIActivityIndicatorView *activeView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
9     activeView.center = CGPointMake(view.bounds.size.width/2.0f, view.bounds.size.height-40.0f);
10     [activeView startAnimating];
11     [view addSubview:activeView];
12
13     [view show];

添加UITableView

IOS開發:UIAlertView使用

這個列表的幾行代碼也說不清楚,就說下思路吧,UIAlertView之所以有這麼大的空間顯示UITableView,用了比較取巧的一個辦法

1 UIAlertView *view = [[UIAlertView alloc]initWithTitle:@"請選擇"
2                                             message:@"/n/n/n/n/n/n/n/n/n/n"
3                                                 delegate:nil
4                                        cancelButtonTitle:nil
5                                                  otherButtonTitles:nil,
6                                                            nil];
7  //其中用了10個換行符來撐大UIAlertView的然後再來添加UITableView,可以自行實現,如果有需要,請留言

基本上這是一些比較常用且實用的東西了,然後還有一個比較重要的東西,就是自定義和美化UIAlertView,相信很多人關心這個,自定義和美化的內容放在下一篇來細說,分析幾個個人覺得不錯的Demo源碼

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved