Slide 27
Slide 27 text
APIs in UILabelMaker
public struct UILabelMaker {
let label: UILabel
}
extension UILabel {
public static func make(withFrame frame: CGRect = .zero, by making:
(UILabelMaker) -> UILabelMaker) -> UILabel {
let label = UILabel(frame: frame)
let maker = UILabelMaker(label: label)
let resultMaker = making(maker)
let resultLabel = resultMaker.label
return resultLabel
}
}
let label = UILabel.make(withFrame: .zero, by: { (maker) -> UILabelMaker
in
return maker
.setFont(to: .systemFont(ofSize: 20))
.setTextAlignment(to: .center)
.setTextColor(to: .blue)
.setNumberOfLines(to: 1)
})