✨ Super sweet syntactic sugar for Swift initializers.
Initialize UILabel then set its properties.
let label = UILabel().then {
$0.textAlignment = .Center
$0.textColor = .blackColor()
$0.text = "Hello, World!"
}
This is equivalent with:
let label: UILabel = {
let label = UILabel()
label.textAlignment = .Center
label.textColor = .blackColor()
label.text = "Hello, World!"
return label
}()
You can use then()
to all of NSObject
subclasses.
let queue = NSOperationQueue().then {
$0.maxConcurrentOperationCount = 1
}
Want to use with your own classes? Just make extensions.
extension MyClass: Then {}
let instance = MyClass().then {
$0.really = "awesome!"
}
Here's an exmaple usage in an UIViewController subclass.
final class MyViewController: UIViewController {
let titleLabel = UILabel().then {
$0.textColor = .blackColor()
$0.textAlignment = .Center
}
let tableView = UITableView().then {
$0.backgroundColor = .clearColor()
$0.separatorStyle = .None
$0.registerClass(MyCell.self, forCellReuseIdentifier: "myCell")
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(self.titleLabel)
self.view.addSubview(self.tableView)
}
}
-
For iOS 8+ projects: Use CocoaPods with Podfile:
pod 'Then', '~> 0.2'
-
For iOS 7 projects: Use CocoaSeeds with Seedfile:
github 'devxoul/Then', '0.2.0', :files => 'Then/Then.swift'
Then is under MIT license. See the LICENSE file for more info.