Contents 非表示
UIKitで困ったこと
Storyboard, Xib上だと、Color, Lines, Alignmentとかは設定できるけど、LineHeight (行間)は設定できないと今更気づいた。
どうしたものかと考えていたら、StringStylizerなる便利なライブラリがあったので使ってみたら簡単に設定できた。
実装
StringStylizerの導入
SPM経由でダウンロード

Extensionに切り分けで共通化
import UIKit
import StringStylizer
extension UILabel {
func setLineHeight(_ lineHeight: CGFloat, maximum: CGFloat? = nil) {
guard let text = self.text, !text.isEmpty else { return }
let maxHeight = (maximum != nil) ? maximum : lineHeight
let styled = text.stylize()
.font(self.font)
.paragraphLineHeight(maximum: maxHeight, minimum: lineHeight)
.attr
self.attributedText = styled
}
}
使い方
UILabelのdidSetでそのままLineHeightを指定して設定可能
@IBOutlet private weak var customLineHeightLabel: UILabel! {
didSet {
customLineHeightLabel.setLineHeight(60)
}
}
ビルドして確認:

LineHeight以外にも、特定のLabelだけのフォントや色を変えたりとかも可能なので、目的に応じたExtensionでカスタムしていくのが良さそうですね。