WindowAlert
- 每次需要显示对话框时都必须提供
UIViewController
是否让您感到烦恼? - 有一堆模态控制器,找出当前哪一个是可见的让您感到沮丧?
UIAlertView.show()
让您感到怀旧?
这个库就是针对这些问题的一个解决方案!
尽管引入通用的标签页和对话框控制器是一个很好的决定,但苹果将其制作成一个可视的视图控制器却是一个失误(Android Fragment 对话框,嗨!)。
为了实现 UIAlertView
的简洁性,这个库在透明根视图控制器之上创建了一个独立的窗口,并在其中显示您的通知控制器。您只需设置 WindowAlert
,然后显示您的对话框就像对通知实例调用 show()
一样简单!
例子
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
。
需求
必须在项目中使用 Swift 4.0、4.2 或 5.0。
安装
WindowAlert 通过 CocoaPods 提供使用。要安装它,请简单地在 Podfile 中添加以下行
pod 'WindowAlert', '~> 3.0.0'
使用
使用相当简单,大部分部分都与 UIAlertController
API 相似。
以下代码将创建一个带有单个文本字段、标题、消息和一个操作的警告对话框
let alert = WindowAlert(title: "This is a title", message: "This is a message", preferredStyle: .alert)
alert.addTextField { textField in
textField.text = "I'm a text field inside WindowAlert!"
}
alert.add(action: WindowAlertAction(
title: "Got it!",
style: .default))
alert.show()
此代码可以在任何地方调用 - 无需传递用于显示的 UIViewController
。
额外加分功能
- 设置警告动作的对齐方式
WindowAlertAction(
title: "Got it!",
style: .default,
titleAlignment: .left)
- 将图片添加到警告动作
WindowAlertAction(
title: "Got it!",
style: .default,
image: UIImage(named: "someImage"))
- 在点击外部时关闭警告
let alert = WindowAlert(title: "This is a title", message: "This is a message", preferredStyle: .alert)
alert.hideOnTapOutside = true
警告:图片和标题对齐基于 Apple 内部实现,并且在 iOS 更新后可能会在没有通知的情况下破坏。如果您发现更新后出现问题,请告诉我,我将尽快发布更新。
作者
Alexander Leontev,[email protected]
授权
WindowAlert 在 Apache 2.0 许可证下提供。有关更多信息,请参阅 LICENSE 文件。