AlertViewController的快速調(diào)用擦酌,看我就夠了薛训。

前言

Alert 在iOS開(kāi)發(fā)中,是一個(gè)經(jīng)常用到的控件仑氛。iOS原生的API中的寫(xiě)法乙埃,我這里就不吐槽了,無(wú)論是AlertView 還是AlertViewcontroller 都需要很多代碼來(lái)調(diào)用锯岖。

網(wǎng)上有很多關(guān)于AlertView的封裝介袜,再加上這是個(gè)已經(jīng)被廢棄的控件。我這里就不來(lái)敘述出吹。這里提供一個(gè)我自己實(shí)現(xiàn)的AlertViewController的快速調(diào)用遇伞。

看下圖,我猜還有很多人捶牢,還在用著廢棄的Alert鸠珠,忍受著 ??????


警告視圖

好了下面就直接上代碼的使用 >>>>>>

快速創(chuàng)建

代碼示范

   [XWAlert showAlertWithTitle:@"提示"
                       message:@"你瀏覽的是成人內(nèi)容,是否滿足18歲秋麸?"
                  confirmTitle:@"滿足"
                   cancelTitle:@"自動(dòng)離開(kāi)"
                preferredStyle:(UIAlertControllerStyleActionSheet/UIAlertControllerStyleAlert)
                 confirmHandle:^{
                    NSLog(@"滿足-----");
   }
                  cancleHandle:^{
                    NSLog(@"不滿足-----");

   }];
效果預(yù)覽

當(dāng)然渐排,你還可以省略其中任何一個(gè)

自定義UIAlertAction 數(shù)量種類不限

示例1

   [XWAlert showAlertWithTitle:@"選擇題"
                        message:@"菊花一詞,為何走紅灸蟆?"
                 preferredStyle:UIAlertControllerStyleAlert
                    actionMaker:^(UIAlertController *maker) {
                        
                        NSString *string1 = @"菊花臺(tái)這首歌";
                        NSString *string2 = @"陶淵明的詩(shī)詞";
                        NSString *string3 = @"象征純潔";
                        NSString *string4 = @"人體器官的形象話";
                        NSString *string5 = @"我選擇死亡";

 [maker addAlertDefaultActionWithTitle:string1 handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string1);
                        }];

                        [maker addAlertDefaultActionWithTitle:string2 handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string2);

                        }];
         
                        [maker addAlertDefaultActionWithTitle:string3 handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string3);
                        }];

                        [maker addAlertActionWithTitle:string4 actionStyle:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string4);
                            
                        }];

                        [maker addAlertActionWithTitle:string5 actionStyle:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string5);

                        }];
    }];
}
示例1

示例2

   [XWAlert showAlertWithTitle:@"注意"
                        message:@"按照要求填寫(xiě)信息"
                 preferredStyle:self.selectedStyle
                    actionMaker:^(UIAlertController *maker) {
                        
                        NSString *string1 = @"確定";
                        NSString *string2 = @"取消";

                        [maker addAlertDefaultActionWithTitle:string1
                                                      handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string1);
                        }];
                        

                        [maker addAlertActionWithTitle:string2
                                           actionStyle:ActionStyleCancel
                                               handler:^(UIAlertAction * _Nullable action) {
                            NSLog(@"你的選擇是--- %@", string2);
                        }];
                        

                        [maker addTextFieldWithPlaceholder:@"輸入用戶名"
                                           secureTextEntry:NO
                                                   textHandler:^(NSString * _Nullable text) {
                           NSLog(@"你輸入的用戶是--- %@",text);

                        }];
                        
                        [maker addTextFieldWithPlaceholder:@"輸入密碼"
                                           secureTextEntry:YES
                                          textFiledhandler:^(UITextField * _Nonnull textField) {
                             textField.textColor = [UIColor greenColor];
                             textField.font = [UIFont boldSystemFontOfSize:16];
                                                     }];
                    }];

示例2
 這里需要注意的是 這個(gè)方法 callback 一個(gè) UIAlertController 驯耻,*maker。 
 我為UIAlertController添加了一個(gè)便利添加UIAlertAction的Category炒考。

第一種是添加一個(gè)默認(rèn)的AlertAction,只需要輸入標(biāo)題可缚,然后handle業(yè)務(wù)邏輯就可以。

/**
 to add UIAlertAction with UIAlertActionStyleDefault

 @param title - the title of UIAlertAction
 @param handler - to handle your business
 */
- (void)addAlertDefaultActionWithTitle:(NSString *_Nullable)title
                               handler:(void (^_Nullable)(UIAlertAction * _Nullable  action))handler;

第二種和第一種的區(qū)別在于可以選擇樣式

/**
 to add UIAlertAction with Custom Style


 @param title - the title of UIAlertAction
 @param actionStyle - to chose UIAlertActionStyle
 @param handler - to handle your business
 */
- (void)addAlertActionWithTitle:(NSString *_Nullable)title
                    actionStyle:(UIAlertActionStyle)actionStyle
                        handler:(void (^ __nullable)(UIAlertAction * _Nullable action))handler;

第三種是添加TextFiled斋枢,可以添加占位帘靡,密文輸入。會(huì)callback 一個(gè)輸入結(jié)束后的text

/**
 to add TextField in your alert , callback the  text which  you input
 it only support in Alert Styple

 @param placeholder - set TextField's placeholder
 @param secureTextEntry - set Secure input Mode
 @param textHandler - to get text which  you input
 */
- (void)addTextFieldWithPlaceholder:(NSString *_Nullable)placeholder
                    secureTextEntry:(BOOL)secureTextEntry
                            textHandler:(TextFiledHanler _Nullable )textHandler;

第四種和第三種類似瓤帚,添加textFiled描姚;callback的是 textFiled對(duì)象本身,用于處理業(yè)務(wù)邏輯缘滥。

/**
 to add TextField in your alert, callback the  textFiled which  you built
 it only support in Alert Styple

 @param placeholder - set TextField's placeholder
 @param secureTextEntry - set Secure input Mode
 @param textFiledhandler - to handle textField which you can do anything
 */
- (void)addTextFieldWithPlaceholder:(NSString *_Nullable)placeholder
                    secureTextEntry:(BOOL)secureTextEntry
                   textFiledhandler:(void(^_Nullable)(UITextField * _Nonnull textField))textFiledhandler;

純message 自動(dòng)miss

    [XWAlert showAlertWithTitle:@"注意"
                        message:@"這是一條不要臉的彈窗"
                 preferredStyle:self.selectedStyle
                autoDismissTime:2];
純文本示例

新增 快速 創(chuàng)建 且可以自定義 style

    [XWAlert showAlertWithTitle:@"title"
                        message:@"message"
                   confirmTitle:@"default style"
                    cancelTitle:@"cancel style"
               destructiveTitle:@"destructive style"
                 preferredStyle:self.selectedStyle
                  confirmHandle:^{
                      
                    NSLog(@"------- default style");

    }
                   cancleHandle:^{
                    NSLog(@"------- cancel style");

    }
              destructiveHandle:^{
                    NSLog(@"------- destructive style");

    }];
    
示范圖

CocoaPods 安裝

pod 'XWAlert', '~> 1.3'

#import <XWAlert.h>

后記

這只是自己設(shè)計(jì)出來(lái)的一種方案轰胁,實(shí)現(xiàn)了AlertViewController的大部分功能。
在使用的過(guò)程有任何問(wèn)題都可以向我提出
如果大家有更加好的方案和思路朝扼,希望把地址發(fā)出來(lái),一起參考學(xué)習(xí)霎肯。

最后, 如果覺(jué)得對(duì)你有所幫助擎颖,還希望大家對(duì)我進(jìn)行支持榛斯。????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市搂捧,隨后出現(xiàn)的幾起案子驮俗,更是在濱河造成了極大的恐慌,老刑警劉巖允跑,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件王凑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡聋丝,警方通過(guò)查閱死者的電腦和手機(jī)索烹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)弱睦,“玉大人百姓,你說(shuō)我怎么就攤上這事】瞿荆” “怎么了垒拢?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)火惊。 經(jīng)常有香客問(wèn)我求类,道長(zhǎng),這世上最難降的妖魔是什么屹耐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任仑嗅,我火速辦了婚禮,結(jié)果婚禮上张症,老公的妹妹穿的比我還像新娘仓技。我一直安慰自己,他們只是感情好俗他,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布脖捻。 她就那樣靜靜地躺著,像睡著了一般兆衅。 火紅的嫁衣襯著肌膚如雪地沮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天羡亩,我揣著相機(jī)與錄音摩疑,去河邊找鬼。 笑死畏铆,一個(gè)胖子當(dāng)著我的面吹牛雷袋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辞居,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼楷怒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蛋勺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鸠删,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抱完,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后刃泡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體巧娱,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年烘贴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了禁添。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡庙楚,死狀恐怖上荡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情馒闷,我是刑警寧澤酪捡,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站纳账,受9級(jí)特大地震影響逛薇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疏虫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一永罚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卧秘,春花似錦呢袱、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蚯涮,卻和暖如春治专,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背遭顶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工张峰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棒旗。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓喘批,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谤祖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)婿滓、插件老速、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,093評(píng)論 4 62
  • 西風(fēng)東逝粥喜,又一池荷老,露從霜降橘券。 辭罷清秋作小雅额湘,此意難表薄葬。 夜夜弦歌旁舰,清樽縱酒锋华,一曲回腸蕩。 緣誰(shuí)苦笑箭窜,離別...
    滄玉閱讀 529評(píng)論 4 6
  • 這兩天早晨都在練習(xí)xdite老師的急速閱讀法毯焕,實(shí)踐下認(rèn)知學(xué)習(xí)法的相關(guān)技術(shù)。 ** Step 1 :找出你最想問(wèn)這...
    digman閱讀 238評(píng)論 0 0
  • 憶江南.江南憶 白居易 江南好磺樱,風(fēng)景舊曾諳纳猫。 日出江花紅勝火,春來(lái)江水綠如藍(lán)竹捉。 能不憶江南芜辕? 今天事情終于有了一...
    頑石的青果花園閱讀 207評(píng)論 0 2