SwiftでUITextViewの行間を設定

スポンサーリンク

Swift で UITextView を使う場合に、文字列の行間を設定する方法です。CSS でいう line-height のようなもの。NSMutableParagraphStyle() の lineSpacing と paragraphSpacing を使って設定することができました。…が、後述してますけど未解決の問題もありです。

— 環境 —
Swift 1.2
Xcode 6.3.2

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

NSMutableParagraphStyle() の lineSpacing と paragraphSpacing で行間を指定

以下のように NSMutableParagraphStyle() の lineSpacing と paragraphSpacing を使うコードで、Swift で UITextView に文字列を表示する際に行間を設定できました。文字列 textString は “\n”(改行文字)で区切られています。

UITextViewController.swift

Screen Shot 2015-06-23 at 19.42.26

これで、上記画像のように行間の微調整を行えたのですが…

長い文字列になると末尾のほうが切れる問題発生

色々と試してみたところ、文字列がさらにかなり長い場合に、文字列の末尾のほうが切れて、スクロールしても文字列の末尾のほうが表示されないという問題が発生しました。(Xcode の iOS Simulator 上の確認で)

UITextView の高さは、コードの最後のほうで、文字列の長さに対応して NSLayoutConstraint を通じて動的に高さを変更するようにしています(しているつもりです)。でも、文字列が長くなるとなぜか切れてしまう…。

これはまだ未解決ですが、さらっと検索した感じだと結構同じ問題にぶち当たってる方も多い模様です。

uitextview cut off – Google 検索

コードの書き方がまずい可能性も高いので、もう少し調査してみます。Swift/iOS 開発に詳しくてご存知の方がおられましたら、ぜひ教えて下さいませ!

スポンサーリンク
 
スポンサーリンク

Leave Your Message!