iOS開發(fā) 封裝一個可以復用的彈窗父類(TSActionAlertView)

GitDemo地址,可以直接跑起來再看文章的O(∩_∩)O,有用的別忘了給老弟個Star

1. 需求分析

功能需要: 在開發(fā)中我們總是遇到使用各種各樣的彈窗的情況,有的用作提示,有的用作功能,彈窗種類很多

他們的共同之處是:都有一個背景蒙層,都需要加一些動畫

但是它們用作展示的部分總是不盡相同:展示的樣式各異,很難統(tǒng)一

2. 功能需求

如果能有一個統(tǒng)一的,只需要寫子視圖,確定位置的父類,其他的動畫,背景已經(jīng)封裝好,那么我們就可以只寫子控件和布局,而不用管其他問題

3. 功能實現(xiàn)

所以我造了個輪子把展示部分的作為containerview拋出來,布局和子視圖可以隨意添加,只需要繼承就好了方便以后使用彈窗的時候可以快速的寫出來,不用考慮彈窗的動畫,彈窗的沖突等一系列問題,使用彈窗就像寫一個view一樣簡單.

不過做出來之后發(fā)現(xiàn),它的功能遠遠不止這些,還可以寫列表,跳轉(zhuǎn),輸入框,選項卡,只要有黑色背景的都能用,效果請看文章底部

效果圖:


Untitled.gif

4. 簡單介紹

2 種背景樣式
TSActionAlertViewBackgroundStyle 說明
TSActionAlertViewBackgroundStyleSolid 背景半透明
TSActionAlertViewBackgroundStyleGradient 背景漸變
5 種彈窗樣式
TSActionAlertViewTransitionStyle 說明
TSActionAlertViewTransitionStyleSlideFromBottom 上來,然后下去
TSActionAlertViewTransitionStyleFade 漸變
TSActionAlertViewTransitionStyleBounce 彈出
TSActionAlertViewTransitionStyleDropDown 下落
TSActionAlertViewTransitionStyleSlideFromTop 下滑,然后上去

5. 怎么用

用起來不要太簡單
1. 繼承 TSActionAlertView
2. 添加自定義控件,懶加載
3. 添加事件,寫好了兩個block在頭文件中,方便使用.不夠可以自己加
4. 繼承和使用方法
```
     - (void)layoutContainerView{
        //布局containerview的位置,就是那個看得到的視圖
        }

     -(void)setupContainerViewAttributes{
        //設置containerview的屬性,比              如切邊啥的
        }

     - (void)setupContainerSubViews{
            //給containerview添加子視圖
        }

      - (void)layoutContainerViewSubViews{
        //設置子視圖的frame
        }
```
5. 彈出
 TSActionDemoView * demoAlertView  = [TSActionDemoView actionAlertViewWithAnimationStyle:TSActionAlertViewTransitionStyleSlideFromTop];
    [demoAlertView show];
6. 消失
    [demoAlertView dismissAnimated:YES];

6. 更多功能

  • 你想知道什么時候出現(xiàn),消失?

    添加了代理

- (void)actionAlertViewWillShow;//即將出現(xiàn)
- (void)actionAlertViewDidShow;//已經(jīng)出現(xiàn)
- (void)actionAlertViewWillDismiss;//即將消失
- (void)actionAlertViewDidDismiss;//已經(jīng)消失
- (void)actionAlertViewDidSelectBackGroundView;//點擊了背景
  • 你想讓點擊背景的時候隱藏?

    添加了屬性

@property (nonatomic, assign)BOOL isAutoHidden;//是否點擊背景隱藏

isAutoHidden 如果是YES=消失,如果是NO,點擊背景就不允許消失

  • 不會適應屏幕高度?

    demo里有教你怎么使用它來適配寬高,寬高其實在不同機型是相同的,不要超過320就好了

- (void)layoutContainerView{
    //布局containerview的位置,就是那個看得到的視圖
    //layout self.containerView   self.containerview is the alertView
    CGFloat hight = 222;
    CGFloat spideLeft = (ScreenWidth - TSACTIONVIEW_CONTAINER_WIDTH)/2;
    CGFloat spideTop = (ScreenHeight - hight) * 0.4;
    self.containerView.frame = CGRectMake(spideLeft, spideTop,TSACTIONVIEW_CONTAINER_WIDTH, hight);
}

7.更多效果展示

1. 正常彈窗
1. normal.gif
2. 輸入彈窗
2. input.gif
3. 網(wǎng)頁彈窗彈窗
3. web.gif
4. 下拉效果彈窗
4. pull.gif
5. 正常彈窗
5. jump.gif

更多功能正在開發(fā).......

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,412評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,514評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,373評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,975評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,743評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,199評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,262評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,414評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,951評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,780評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,527評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,218評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,649評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,889評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,673評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

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

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,151評論 4 61
  • ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)(Destructuring) 數(shù)組的...
    芒僧閱讀 221評論 0 0
  • 我盼著秋天早日到來 這兩天聽著Stacey Kent的I wish I could go travelling a...
    keep251閱讀 454評論 0 0
  • 你知道嗎 你出現(xiàn)的時間 有點巧 當時 真的是有點兒 嚇了一跳 真害怕 這種東西 叫 緣分
    腦抽者的獨白閱讀 211評論 0 0