AKUtils
方便 iOS 开发的各种实用工具。
安装
Cocoapods
pod 'AKUtils'
Carthage
github "Artem-Kalmykov/AKUtils"
Swift Package Manager
dependencies: [
.package(url: "https://github.com/Artem-Kalmykov/AKUtils.git")
]
Controls
AKTextField
自动处理下一个按钮
设置handleReturn
属性为true
可以启用为文本字段自动处理下一个/完成按钮。
- 如果
returnKeyType
是.done
,则键盘会自动关闭。 - 如果
returnKeyType
是.next
,则首先响应者状态将转移到下一个文本字段,这应该通过nextField
属性指定。这可以在界面构建器中直接设置。
内边距管理
可以通过设置textInset: UIEdgeInsets
属性修改文本内边距。默认为.zero
。还可以通过设置rightViewInset: UIEdgeInsets
属性指定额外的右边距。默认也为.zero
。
动作管理
可以通过将相应的标志设置为false
来手动禁用粘贴、选择、全选、复制、剪切和删除操作
isPasteEnabled: Bool
;isSelectEnabled: Bool
;isSelectAllEnabled: Bool
;isCopyEnabled: Bool
;isCutEnabled: Bool
;isDeleteEnabled: Bool
.
Foundation 扩展
Decodable+CustomCoding
CustomCodingKeys
用于解码尚不为人知键的值。键可以通过调用 CustomCodingKeys("MyCustomKey")
动态在运行时创建。
原始字典提取
用于通过调用 dictionary: [String: Any]?
计算属性将任何 Encodable
转换为原始字典。
GCD+Custom
延迟发送
将 dispatchAfter()
作为全局函数调用,并直接指定秒数,而不是 .now() + seconds
。
单次发送
通过调用 DispatchQueue.once(token: String, block: () -> (}}
NSObject+Custom
className
变量适用于类和实例。
String+Custom
搜索
通过调用 corresponds(toSearchString: String) -> Bool
来查看子字符串是否存在于字符串中。
空
通过调用静态的 String.isEmpty(String?)
来查看可选字符串是否为空。实例变量 isEmpty
也会被重定义以检查字符串去除空白和换行后的长度。
电子邮件验证
var isValidEmail: Bool
通过调用正则表达式来验证字符串是否是电子邮件字符串。
[a-zA-Z0-9\\'\\+\\-\\_\\%\\.]{2,256}" + "\\@" + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\." + "[a-zA-Z0-9][a-zA-Z0-9\\-]{1,25}" + ")+
移除HTML标签
var removingHTMLTags: String
返回不包含HTML标签的相同字符串。
本地化
var localized: String
返回字符串的本地化版本。如果它在本地化表中没有找到,它还会自动解决将字符串转换为大写的问题。
UIKit扩展
UICollectionView
UICollectionView+Custom
用泛型类型调用dequeueReusableCell
,而不是重用ID字符串。重用ID字符串来自UICollectionViewCell
,见下文。
UICollectionViewCell+Custom
实现var reuseID: String
属性,默认返回类名,但可以被覆盖。
UITableView
UITableView+Custom
使用泛型类型调用 dequeueReusableCell
,而不是重用 ID 字符串。重用 ID 字符串来自 UITableViewCell
,见下文。
UITableViewCell+Custom
实现var reuseID: String
属性,默认返回类名,但可以被覆盖。
UIAlertController
简单 Ok 提醒
调用 static func showOKAlert(title: String?, message: String?)
以显示带有本地化 OK
按钮的简单提醒,没有按钮处理。
没有视图控制器进行展示
可以通过调用实例函数 func show()
在单独的窗口上不通过视图控制器展示提醒。要从此类提醒中退出,调用 UIAlertController.dismissActiveAlert()
。
UIImage+Custom
UIImage with color
通过调用 UIImage.withColor(UIColor)
创建指定颜色的 1x1 图片
UIStoryboard+Custom
通过调用 instantiate(CustomViewController.self)
使用泛型创建视图控制器,而不是指定一个字符串标识符。Storyboard ID 会从视图控制器自身获取,见下文。
UIViewController+Custom
Storyboard ID
var storyboardID: String
将自动从类名生成,但可以进行重写。
嵌入到导航控制器中
调用 func embedInNavigation() -> UINavigationController
来创建一个以当前视图控制器作为根视图控制器的 UINavigationController
。
工具
空闭包
公开别名 EmptyClosure = (() -> Void)
可选比较
定义了一些全局中缀运算符和函数,以便能够使用以下运算符比较可选值
<?
;<=?
;>?
;>=?
.