俺の心は三倍体!

てきとうに めもに おぼえがきに

sizeWithAttributes:

UIOutletとかで、xibと連結しているUILabelのフォントサイズで、

ラベルの大きさかえたい時とかに使うと便利なのでメモ。

ローカライズとかで、ラベルに表示したい文言の長さがかわるから、横幅指定できないときとかに使う。

 

オートレイアウトしているときは、viewDidLayoutSubviewsとかに書かないと、

うまく反映してくれないので注意。

(多分viewDidLoadとかだと、その後にオートレイアウト当てられるためうまく行かない?)

NSStringのsizeWithFont:はdepricatedなので、sizeWithAttributes:を使う。

//self.labelは、プロパティでxibとoutletでつながっている事にします。
CGSize size = [self.label.text sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:self.label.font.pointSize]}];
//sizeをlabelに適用
self.label.frame = CGRectMake(self.label.frame.origin.width,self.label.frame.origin.height,size.width,size.height);

ねむい!ちょっと確認してないんですがそのうち直します・・・。