Swift

reduceの途中経過を使う

某質問サイトの質問で思いついたものなのですが、僕の中のreduceの有用性が大幅にアップしたので書いておきます。

UIKitってよくわからないのでちゃんと動くのかわかりません
雰囲気で!

文字列の配列からラベルを作成し並べて表示する

let view = UIView()

["Label01", "Label02", "Label03", "Label04"]
  .map { title -> UILabel in
    let label = UILabel()
    label.text = "\(title)"
    label.font = UIFont.systemFont(ofSize: 15)
    label.textColor = UIColor.white
    label.textAlignment = .center
    label.sizeToFit()

    return label
  }
  .reduce(CGFloat(0)) { left, label in

    label.frame.origin = CGPoint(x: left, y: 40)
    view.addSubview(label)

    return left + label.frame.size.width
}