SDCAlertView 12.0.4

SDCAlertView 12.0.4

测试测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2024年7月
SPM支持SPM

Scott Berrevoets维护。



SDCAlertView

SDCAlertView最初是一个与UIAlertView外观相同的alert,但它支持自定义内容视图。随着iOS 8中引入了UIAlertController,该项目更新到了更现代的API,即UIAlertController带来的API。

特点

  • 大多数UIAlertController功能
  • 自定义内容视图
  • 阻止控制器在用户点击按钮时关闭
  • 易于显示/隐藏
  • 属性化标题标签、消息标签和按钮
  • 外观定制
  • Swift和Objective-C均可使用
  • 按钮放置位置合理
  • UI测试
  • 自定义alert行为
  • 支持CocoaPods/Carthage/Swift Package Manager
  • 易于队列alert

要求

  • Swift 5.0
  • iOS 9或更高版本

安装

CocoaPods

使用 CocoaPods 安装 SDCAlertView,将其整合到现有的 Podfile 中或创建一个新的 Podfile

platform :ios, '9.0'
use_frameworks!

target 'MyApp' do
  pod 'SDCAlertView'
end

然后运行 pod install

Carthage

使用 Carthage 安装,将以下行添加到您的 Cartfile

github "sberrevoets/SDCAlertView"

运行 carthage update,并将 SDCAlertView.framework 拖至 Build 文件夹中以添加到您的项目中。

Swift Package Manager

使用 Swift Package Manager 安装,将此包添加到项目的 'Swift Packages' 部分。或者将以下行添加到您的 Package.swift

 .package(url: "https://github.com/sberrevoets/SDCAlertView.git", from: "12.0.1")

提醒框与操作表单

SDCAlertController 支持显示操作表单,但在使用操作表单时需要考虑一些限制和注意事项

  • 它不适合在 iPad 上使用。这是因为 iOS 不支持 UIModalPresentationStyle.Custom 进行适应性显示(例如,从工具栏项中显示操作表单时)。
  • 由于 Swift/Objective-C 互操作性中的限制,新 AlertBehaviors 不可用,当从 Swift 使用 SDCAlertController 时。这也影响了 AlertControllerStyle.Alert
  • 在将子视图添加到自定义内容视图时,该视图将替换标题和消息标签。

使用方法

SDCAlertView是用Swift编写的,但可以在Swift和Objective-C中使用。Objective-C中的对应类型名称与Swift中相同,但前面有一个SDC前缀。

基本功能

let alert = AlertController(title: "Title", message: "This is a message", preferredStyle: .alert)
alert.addAction(AlertAction(title: "Cancel", style: .normal))
alert.addAction(AlertAction(title: "OK", style: .preferred))
alert.present()

// or use the convenience methods:

AlertController.alert(withTitle: "Title", message: "This is a message", actionTitle: "OK")
AlertController.sheet(withTitle: "Action sheet title", "Action sheet message", actions: ["OK", "Cancel"])

自定义内容视图

let spinner = UIActivityIndicatorView(activityIndicatorStyle: .gray)
spinner.translatesAutoresizingMaskIntoConstraints = false
spinner.startAnimating()

let alert = AlertController(title: "Title", message: "Please wait...")
alert.contentView.addSubview(spinner)

spinner.centerXAnchor.constraint(equalTo: alert.contentView.centerXAnchor).isActive = true
spinner.topAnchor.constraint(equalTo: alert.contentView.topAnchor).isActive = true
spinner.bottomAnchor.constraint(equalTo: alert.contentView.bottomAnchor).isActive = true

alert.present()

防止取消显示

let alert = AlertController(title: "Title", message: "This is a message")
alert.addAction(AlertAction(title: "Dismiss", style: .preferred))
alert.addAction(AlertAction(title: "Don't dismiss", style: .normal))
alert.shouldDismissHandler = { $0.title == "Dismiss" }
alert.present()

风格和外观

SDCAlertController是一个普通视图控制器,因此将tintColor应用于其view将使按钮和添加到contentView中的任何子视图着色。

如果您需要更多自定义,创建AlertVisualStyle的子类,并在AlertController实例上使用visualStyle。您还可以创建一个AlertVisualStyle的实例,并重写所需的属性(这主要用于从Objective-C中使用)。请注意,在显示提示后,更改这些设置将被忽略。

许可证

SDCAlertView在MIT许可证下分发。