JFPopup is a Swift Module help you popup your custom view easily.
Support 3 way to popup, Drawer, Dialog and BottomSheet.
To run the example project, clone the repo, and run pod install
from the Example directory first.
对话框模式,类似UIAlertConroller, 你也可以编写你的自定义AlertView
self.popup.dialog {
let v = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
v.backgroundColor = .red
return v
}
抽屉模式,支持左右抽屉,宽度自定义,最大可以全屏,
//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
}
类似Flutter Bottomsheet, 底部往上弹出一个容器。 你也可以给予此创建你的个人自定义风格UIActionSheet. 底下有微信风格的组件已封装
self.popup.bottomSheet {
let v = UIView(frame: CGRect(x: 0, y: 0, width: CGSize.jf.screenWidth(), height: 300))
v.backgroundColor = .red
return v
}
v1.0,暂时只有一款微信风格ActionSheet, 基于上面bottomSheet打造,后续会基于上面基础popup,打造更多基础组件
self.popup.actionSheet {
[
JFPopupAction(with: "拍摄", subTitle: "照片或视频照片", clickActionCallBack: { [weak self] in
self?.pushVC()
}),
JFPopupAction(with: "从手机相册选择", subTitle: nil, clickActionCallBack: {
}),
JFPopupAction(with: "用秒剪制作视频", subTitle: nil, clickActionCallBack: {
}),
]
}
此方法推荐兼容OC情况下使用,或者你的popup View代码量非常大 需要一个vc来管理。
继承写法 (类似继承UITableView,dataSoure写在内部)
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)
JFPopup is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'JFPopup', '1.0.0'
JerryFans, [email protected]
JFPopup is available under the MIT license. See the LICENSE file for more info.