JRAlertController:基于apple的UIAlertController控件api,用swift重新打造的UI控件,更符合主流app的風(fēng)格。
在日常iOS開發(fā)中,我們經(jīng)常能遇到這種情況(我們需要在某個地方讓用戶做一個選擇),比如說:一個博客,點(diǎn)擊右上角的按鈕后,你可以執(zhí)行“修改博客”、“刪除博客”兩個操作。既然是這么常用的操作,Apple當(dāng)然給我們提供了常用的控件,那就是UIAlertController。
UIAlertController
自iOS8出現(xiàn),在那之前,我們用的是UIAlertView
和UIActionSheet
。iOS8之后,UIAlertView
與UIActionSheet
合并為UIAlertController
,并以一個style
屬性來區(qū)分原來的UIAlertView
和UIActionSheet
的作用,還有就是用閉包回調(diào)的方式代替了之前的代理(我覺得閉包回調(diào)的方式寫起來方便多了)。
那么既然UIAlertController
已經(jīng)是在iOS8優(yōu)化后的控件(至少api上優(yōu)化了),那么為何還來個JRAlertController
呢?
在開發(fā)中我們會發(fā)現(xiàn),UIAlertController
有以下幾個不足之處:
1.無論是alert
還是sheet
下的界面,邊角過于圓滑,尤其當(dāng)style
是sheet
的時候,從底部彈出來那么一個過于圓滑的界面,反正我不覺得好看,不信你看微博、微信這些主流app是怎么做的
微博的效果:
2.點(diǎn)擊背景部分,無法dismiss UIAlertController
3.alert
樣式下,添加過多的UITextField
和Action
后,界面顯示丑陋。(雖然不會有這種需求,也不該在UIAlertController
過量添加,畢竟UIAlertController
適用于”短暫”操作,但是過多添加后,界面確實(shí)不好看,后面會有效果圖)
基于以上幾點(diǎn)不足,我認(rèn)為足以自定義一個控件來代替UIAlertController
,所以JRAlertController
誕生了。