一個優(yōu)雅的Swift彈窗組件-JFPopup

前言

受Flutter bottomSheet,drawer,dialog, 響應(yīng)式布局的啟發(fā)得封。也有基于Swift編寫一套通用的彈窗組件的想法米诉,所以寫了JFPoup組件,帶有3種彈窗風(fēng)格凶硅,分別是drawer(抽屜式)悠咱,bottomSheet(底部往上彈出UIView容器),dialog(對話框,也就是Alert),都能彈出自定義的UIView容器贾虽√釉悖基于Swift編寫,OC若要兼容要寫相應(yīng)擴展蓬豁,詳情可以看demo绰咽。JFPopup 目前支持iOS9+

下載地址

cocoaPods:

pod 'JFPopup', '1.0.0'

github:

https://github.com/JerryFans/JFPopup

Usage

快速模式

Dialog

對話框模式,類似UIAlertConroller, 你也可以編寫你的自定義AlertView

self.popup.dialog {
            let v = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
            v.backgroundColor = .red
            return v
        }
image

Drawer

抽屜模式地粪,支持左右抽屜取募,寬度自定義,最大可以全屏驶忌,

//default left
self.popup.drawer {
            let v = DrawerView(frame: CGRect(x: 0, y: 0, width: CGSize.jf.screenWidth(), height: CGSize.jf.screenHeight()))
            v.closeHandle = { [weak self] in
                self?.popup.dismiss()
            }
            return v
        }

self.popup.drawer(with: .right) {
            let v = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: CGSize.jf.screenHeight()))
            v.backgroundColor = .red
            return v
        }
image

Bottomsheet

類似Flutter Bottomsheet, 底部往上彈出一個容器矛辕。 你也可以給予此創(chuàng)建你的個人自定義風(fēng)格UIActionSheet. 底下有微信風(fēng)格的組件已封裝

self.popup.bottomSheet {
            let v = UIView(frame: CGRect(x: 0, y: 0, width: CGSize.jf.screenWidth(), height: 300))
            v.backgroundColor = .red
            return v
        }
image

通用組件

v1.0,暫時只有一款微信風(fēng)格ActionSheet, 基于上面bottomSheet打造笑跛,后續(xù)會基于上面基礎(chǔ)popup,打造更多基礎(chǔ)組件

self.popup.actionSheet {
            [
                JFPopupAction(with: "拍攝", subTitle: "照片或視頻照片", clickActionCallBack: { [weak self] in
                    self?.pushVC()
                }),
                JFPopupAction(with: "從手機相冊選擇", subTitle: nil, clickActionCallBack: {

                }),
                JFPopupAction(with: "用秒剪制作視頻", subTitle: nil, clickActionCallBack: {

                }),
            ]
        }
image

VC模式創(chuàng)建

此方法推薦兼容OC情況下使用,或者你的popup View代碼量非常大 需要一個vc來管理聊品。

繼承寫法 (類似繼承UITableView,dataSoure寫在內(nèi)部)

var config = JFPopupConfig.bottomSheet
        config.isDismissible = false
        let vc = TestCustomViewController(with: config)
        vc.show(with: self)

閉包寫法

var config = JFPopupConfig.dialog
        config.bgColor = .clear
        let vc = JFPopupController(with: config, popupProtocol: self) {
            let view: UIView = {
                let view = UIView()
                view.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
                view.layer.cornerRadius = 12
                view.backgroundColor = .black
                return view
            }()
            return view
        }
        vc.show(with: self)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飞蹂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翻屈,更是在濱河造成了極大的恐慌陈哑,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伸眶,死亡現(xiàn)場離奇詭異惊窖,居然都是意外死亡,警方通過查閱死者的電腦和手機厘贼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門界酒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘴秸,你說我怎么就攤上這事毁欣。” “怎么了岳掐?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵凭疮,是天一觀的道長。 經(jīng)常有香客問我串述,道長执解,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任纲酗,我火速辦了婚禮衰腌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耕姊。我一直安慰自己桶唐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布茉兰。 她就那樣靜靜地躺著,像睡著了一般欣簇。 火紅的嫁衣襯著肌膚如雪规脸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天熊咽,我揣著相機與錄音莫鸭,去河邊找鬼。 笑死横殴,一個胖子當(dāng)著我的面吹牛被因,可吹牛的內(nèi)容都是我干的卿拴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼梨与,長吁一口氣:“原來是場噩夢啊……” “哼堕花!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起粥鞋,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缘挽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后呻粹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壕曼,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年等浊,在試婚紗的時候發(fā)現(xiàn)自己被綠了腮郊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡筹燕,死狀恐怖轧飞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庄萎,我是刑警寧澤踪少,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站糠涛,受9級特大地震影響援奢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜忍捡,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一集漾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砸脊,春花似錦具篇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瞳抓,卻和暖如春埃疫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背孩哑。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工栓霜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人横蜒。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓胳蛮,卻偏偏與公主長得像销凑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仅炊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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