CSSの場合、「line-height: 1.5;」と書けば、行間を自由に調整できます。
しかし、SwiftでiOSアプリを作る場合、行間を設定しようとすると少しめんどくさいです。
今回は、swiftでiosアプリの行間を調整する方法を紹介します。
行間を調整して表示するソース
UI Labelパーツに対して行間を調整する場合
1 2 3 4 |
let LineHeightStyle = NSMutableParagraphStyle() LineHeightStyle.lineSpacing = 15.5 let lineHeightAttr = [NSAttributedString.Key.paragraphStyle: LineHeightStyle] UIlabelName.attributedText = NSMutableAttributedString(string: "ラベルに代入したい文言が入ります。", attributes: lineHeightAttr) |
こういった記載になります。
- 2行目の数字(15.5)が実際に設定したいlineHeightの値
- 4行目の「UIlabelName」がUIコンポーネントのアウトレット名
- 4行目の「ラベルに代入したい文言が入ります。」の部分に実際に表示したい文言
を記載すれば、指定した文言が設定したlineHeightで表示されます。
何度も使う処理なので、関数化
LineHeightの調整は確実に何回も使用します。
そのため、関数化して、使い回せるようにしましょう。
1 2 3 4 5 6 |
func lineHeightSetting(targetText: String, lineHeight: Float) -> NSMutableAttributedString { let LineHeightStyle = NSMutableParagraphStyle() LineHeightStyle.lineSpacing = CGFloat(lineHeight) let lineHeightAttr = [NSAttributedString.Key.paragraphStyle: LineHeightStyle] return NSMutableAttributedString(string: targetText, attributes: lineHeightAttr) } |
関数化するとこのようになります。
この関数を宣言した状態で、
1 |
UIlabelName.attributedText = lineHeightSetting(targetText: "表示したい文言を代入", lineHeight: 10.5) |
このような使い方をすれば、指定したlineHeightで文言がレイアウトされます。