Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ Then Public

✨ Super sweet syntactic sugar for Swift initializers

License

Notifications You must be signed in to change notification settings

devxoul/Then

Repository files navigation

Then

Swift CocoaPods Build Status

✨ Super sweet syntactic sugar for Swift initializers.

At a Glance

Initialize UILabel then set its properties.

let label = UILabel().then {
 0ドル.textAlignment = .center
 0ドル.textColor = .black
 0ドル.text = "Hello, World!"
}

This is equivalent to:

let label: UILabel = {
 let label = UILabel()
 label.textAlignment = .center
 label.textColor = .black
 label.text = "Hello, World!"
 return label
}()

Tips and Tricks

  • You can use then() to all of NSObject subclasses.

    let queue = OperationQueue().then {
     0ドル.maxConcurrentOperationCount = 1
    }
  • Want to use with your own types? Just make extensions.

    extension MyType: Then {}
    let instance = MyType().then {
     0ドル.really = "awesome!"
    }
  • Use with() when copying the value types.

    let newFrame = oldFrame.with {
     0ドル.size.width = 200
     0ドル.size.height = 100
    }
    newFrame.width // 200
    newFrame.height // 100
  • Use do() to do something with less typing.

    UserDefaults.standard.do {
     0ドル.set("devxoul", forKey: "username")
     0ドル.set("devxoul@gmail.com", forKey: "email")
     0ドル.synchronize()
    }

Real World Example

Here's an example usage in an UIViewController subclass.

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)
 }
}

Installation

  • Using CocoaPods :

    pod 'Then'
  • Using Swift Package Manager :

    import PackageDescription
    let package = Package(
     name: "MyAwesomeApp",
     dependencies: [
     .Package(url: "https://github.com/devxoul/Then", majorVersion: 2),
     ]
    )

License

Then is under MIT license. See the LICENSE file for more info.

About

✨ Super sweet syntactic sugar for Swift initializers

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 16

AltStyle によって変換されたページ (->オリジナル) /