近期項目中,UI設(shè)計增加了個彈窗樣式媳溺,打開手機qq 點贊系統(tǒng) 當(dāng)你點贊次數(shù)超過每日次數(shù)之后 會提示一個窗口旧噪,我們項目需要這個彈窗的樣式油啤。找了一些demo都滿足不了需求,最后還是自己寫了一個,主要思路是 觸發(fā)彈窗的時候 將顯示的控件添加到一個背景的view上 最終一行代碼調(diào)用即可 下面上代碼:(顯示部分的ui可自定義 )
自定義方法
self則是整體的背景view 增加點透明度 可以看到底部的內(nèi)容,用戶角度上看就是一個alert
block是為了 在彈窗上點擊之后 觸發(fā)一些操作而設(shè)定的 默認設(shè)定的是 彈窗消失,可去除
三種位置的彈窗
頂部? 中間? 底部 根據(jù)需求來使用? dosomeThing是點擊彈窗之后 需要進行的操作 比如 跳轉(zhuǎn)頁面 請求接口等 默認添加了 彈窗消失的功能 即點擊彈窗之后 彈窗消失 再去調(diào)用block內(nèi)的代碼歪沃。
利用枚舉來對控件的顯示位置進行區(qū)分
上中下三種 位置可自行調(diào)整
顯示的彈窗整體
self.mainView是彈窗本體 所有彈窗顯示的內(nèi)容都添加到這個View上,當(dāng)然這個也可以自定義大小嫌松,背景顏色 背景圖等沪曙。
動畫
最后是彈窗顯示 和消失的動畫 需要遵守<CAAnimationDelegate>協(xié)議 動畫類型可以自行更換 猶豫項目中只需要這個樣式的動畫 暫時未封裝。最重要的事 代理方法 動畫結(jié)束后需要移除self萎羔。想要demo可到github下載:https://github.com/FormerMonster/AlertView??