12155


お世話になります  
ちょっと実装がうまくいかなくて、行き詰まったので質問させていただきました  
UILabelを上寄せしたくトライしてるのですが、いくつか見たサイトのものをそのまま試してもうまくいかず、完全に行き詰まりました。

[code]

    self.kodawari_label.text = ary_name_kodawari?.componentsJoinedByString(" ")
    self.kodawari_label.numberOfLines = 0
    self.kodawari_label.sizeToFit()
    
[/code]

こんな感じか、フォントからサイズ取ってやるのがいいのかなって思ったのですが、  
何故か１行分しか、高さを取ってくれず、以下メソッドです

[code]

    let size:CGSize = self.kodawari_label.text!.sizeWithAttributes([NSFontAttributeName:font])
    
[/code]

いまこんな感じで行き詰まっております  
ちなみにautolayoutは切ってます  
![画像の説明をここに入力](https://i.stack.imgur.com/0Xmhf.png)

どなたかお分かりになる方いらっしゃいますでしょうか  
よろしくお願いします。


CC BY-SA 3.0
2015-07-07T09:13:06.657
12117
2015-07-08T09:01:32.770
403
question
ios swift uilabel
複数行のUILabelを綺麗に上寄せしたい


『上寄せしたい』というのがよく分からないのですが、「幅を指定しつつ、テキストがぴったり収まる `UILabel`
のサイズを求めたい」というようなことで合っているでしょうか？

その場合、`sizeWithAttributes` はテキスト属性しか受け取らないメソッドですので、テキストの折り返しなどは考慮してくれないと思います。

テキストを収めたいサイズを指定できるメソッドが、ドキュメントの同じページにありますので、それを使ってみてください。

* * *

ただ、上のメソッドはいずれも、`UILabel`
と同じ方法でサイズを計算すると保証されているわけではないと思います。ですので、個人的には、`UILabel` に問い合わせるのが確実かな、と思っています。

[code]

    label.sizeThatFits(CGSize(width: <#最大幅#>, height: CGFloat.max))
    
[/code]

これで、最大幅以下の、テキストがぴったり収まるサイズが返ってくると思いますので、これを使って調整してみてください。


CC BY-SA 3.0
2015-07-07T11:12:10.777
12120
2015-07-07T11:12:10.777
2299
12117
answer


最終的に、viewdidlayoutsubviewsに書けばよかっただけでした。  
お騒がせしました

[code]

    override func viewDidLayoutSubviews() {
        self.view.frame.size.height = 450
        self.kodawari_label.sizeToFit()
    }
    
[/code]


CC BY-SA 3.0
2015-07-08T09:01:32.770
12155
2015-07-08T09:01:32.770
403
12117
answer