then是一個swift初始化庫,只有80幾行的代碼庫,確可讓初始化變得很優雅。swift
1.使用then初始化AnyObject,這裏以初始化控件爲例spa
lazy var label = UILabel().then({ $0.text = "label" $0.textColor = .blue })
let redView = UIView().then { (make) in make.backgroundColor = .red make.frame = CGRect(x: 50, y: 50, width: 100, height: 100) }
let button = UIButton().then ({ $0.setTitle("點我", for: .normal) $0.setTitleColor(.red, for: .normal) })
2.then
和SnapKit
一塊兒使用的方式code
let button1 = UIButton().then { (make) in make.setTitle("登陸", for: .normal) make.setTitleColor(.black, for: .normal) view.addSubview(make) make.snp.makeConstraints({ (make) in make.top.left.right.equalTo(0) make.height.equalTo(100) }) }
let button2 = UIButton().then({ $0.setTitle("登陸", for: .normal) $0.setTitleColor(.black, for: .normal) view.addSubview($0) $0.snp.makeConstraints({ $0.top.equalTo(button1.snp.bottom) $0.left.right.equalTo(0) $0.height.equalTo(50) }) })
3.其餘用法orm
let newFrame = oldFrame.with { $0.size.width = 200 $0.size.height = 100 } newFrame.width // 200 newFrame.height // 100
UserDefaults.standard.do { $0.set("devxoul", forKey: "username") $0.set("devxoul@gmail.com", forKey: "email") $0.synchronize() }