質問: text`に試しに変更してみましたが問題は解決しなかったのでattributedTextに問題はなさそうです。 その他の設定としてはLabelの高さをテキストに応じて可変にするためLabelの上下左右にはその他の要素との距離を固定値で指定しています。 また、テキストが2行や3行分の時はその分の高さが確保されているようで上下の余白が大きくなっています。ちゃんと表示領域は確保されているのに1行しか表示されていないようです。 解決方法わかる方いましたら教えていただけると助かります。
回答: AttributedStringを表示できる大きさ(`CGRect`)を、計算で導いて、それによって、`UILabel`のフレームサイズを決定するのが、確実だと思います。 NSAttributedString UIKit Additions Referenceの`func boundingRectWithSize(_ size: CGSize, options options: NSStringDrawingOptions, context context: NSStringDrawingContext?) -> CGRect`を使って、計算ができます。 サンプルコードを示します(Swiftにて、失礼)。 ``` import UIKit // もとになるAttributedStringを用意。 let attributedText = NSAttributedString(string: "Alphabet Brake Canada Drive Energy Fight Global Human Italy Joint Knock", attributes: NSFontAttributeName: UIFont(name: "Helvetica-Bold", size: 24.0)!]) // 幅200pxの場合の、矩形座標を算出。CGSizeのheightを、十分に大きな値にするのがポイント。 let textRect = attributedText.boundingRectWithSize(CGSize(width: 200.0, height: 2000.0), options: NSStringDrawingOptions.UsesLineFragmentOrigin, context: nil) // textRect = {x 0 y 0 w 192.035 h 138} // 計算の結果に基づいて、UILabelの高さを決める。 let label = UILabel(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: textRect.size.height)) label.numberOfLines = 0 // 視覚的に分かりやすいように、UILabelに枠線をつけておく。 label.layer.borderWidth = 1.0 label.attributedText = attributedText ``` ![画像の説明をここに入力 コード中のコメントにも書きましたが、メソッド`boundingRectWithSize`の第一引数`CGSize`の`height`を、余裕があるくらい大きな値にしないと、期待する値を得られないようです。