Then
一看就懂
初始化 UILabel 然后设置其属性。
let label = UILabel().then {
$0.textAlignment = .center
$0.textColor = .black
$0.text = "Hello, World!"
}
这相当于
let label: UILabel = {
let label = UILabel()
label.textAlignment = .center
label.textColor = .black
label.text = "Hello, World!"
return label
}()
小技巧
-
你可以用
then()
操作所有NSObject
子类。let queue = OperationQueue().then { $0.maxConcurrentOperationCount = 1 }
-
想用自己的类型使用?只需创建扩展。
extension MyType: Then {} let instance = MyType().then { $0.really = "awesome!" }
-
在复制值类型时使用
with()
。let newFrame = oldFrame.with { $0.size.width = 200 $0.size.height = 100 } newFrame.width // 200 newFrame.height // 100
-
使用
do()
以更少的输入执行操作。UserDefaults.standard.do { $0.set("devxoul", forKey: "username") $0.set("[email protected]", forKey: "email") $0.synchronize() }
实例
以下是在 UIViewController 子类中使用的一个示例。
final class MyViewController: UIViewController {
let titleLabel = UILabel().then {
$0.textColor = .black
$0.textAlignment = .center
}
let tableView = UITableView().then {
$0.backgroundColor = .clear
$0.separatorStyle = .none
$0.register(MyCell.self, forCellReuseIdentifier: "myCell")
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(self.titleLabel)
self.view.addSubview(self.tableView)
}
}
安装
-
使用 CocoaPods:
pod 'Then'
-
使用 Swift 包管理器:
import PackageDescription let package = Package( name: "MyAwesomeApp", dependencies: [ .Package(url: "https://github.com/devxoul/Then", majorVersion: 2), ] )
许可
然后 是基于 MIT 许可。有关更多信息,请参阅 LICENSE 文件。