AKUtils 2.0.2

AKUtils 2.0.2

Artem Kalmykov 维护。



AKUtils 2.0.2

  • 作者:
  • Artem Kalmykov

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)

可选比较

定义了一些全局中缀运算符和函数,以便能够使用以下运算符比较可选值

  • <?;
  • <=?;
  • >?;
  • >=?.