叠加层
用于显示空列表消息或加载指示器的库。您可以在视图控制器内容之上显示任何自定义视图。
要求
- iOS 9+
- Swift 5
- XCode 10.3+
安装
叠加层通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'Overlays'
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
准备覆盖视图
为覆盖视图创建一个自定义类。实现OverlayView协议。
import Overlays
class CustomOverlay: UIView, OverlayView {
}
使用模板创建覆盖视图
您可以使用OverlayTemplate类来制作覆盖。
import Overlays
...
let overlay = OverlayTemplate(alignment: .center)
overlay.addImage(named: "Empty")
overlay.addSeparator(30)
overlay.addHeadline("No results :(")
overlay.addSeparator(8)
overlay.addSubhead("Please try again later.")
overlay.addSeparator(20)
overlay.addButton("Retry", listener: { [unowned self] in self.reload() })
showOverlay(overlay)
您还可以集成自定义进度指示器。
import Overlays
import MBProgressHUD
...
let hudContainer = UIView()
MBProgressHUD.showAdded(to: hudContainer, animated: false)
let overlay = OverlayTemplate(alignment: .center)
overlay.addView(hudContainer)
showOverlay(overlay)
在视图控制器中显示
import Overlays
class CustomOverlayViewController: UIViewController {
@IBOutlet var overlay: CustomOverlay!
func show() {
showOverlay(overlay)
}
func hide() {
hideOverlay()
}
在视图顶部显示
import Overlays
...
@IBOutlet var overlay: CustomOverlay!
@IBOutlet weak var containerView: UIView!
func show() {
containerView.showOverlay(overlay)
}
func hide() {
containerView.hideOverlay()
}
...
在键盘上方显示
import Overlays
class CustomOverlayViewController: UIViewController {
@IBOutlet var overlay: CustomOverlay!
private lazy var keyboardAwareOverlays = KeyboardAwareOverlays(controller: self)
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
keyboardAwareOverlays.startListeningKeyboardEvents()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
keyboardAwareOverlays.stopListeningKeyboardEvents()
}
func show() {
keyboardAwareOverlays.showOverlay(overlay)
}
func hide() {
keyboardAwareOverlays.hideOverlay()
}
作者
Evgeniy Safronov, [email protected], https://ios-dev.ru
许可协议
Overlays 可在 MIT 许可下使用。更多信息请参阅 LICENSE 文件。用于示例项目的 MBProgressHUD 库也可在 MIT 许可下使用。