を設定した場合、折り返されたテキストを含むtextLayer.wrapped = YES
ようにサイズを変更するにはどうすればよいですか? textLayer
つまり、の新しい高さを取得するにはどうすればよいtextLayer
ですか?
基本的に、私はのようなものが欲しいです-[UILabel sizeToFit]
。
を設定した場合、折り返されたテキストを含むtextLayer.wrapped = YES
ようにサイズを変更するにはどうすればよいですか? textLayer
つまり、の新しい高さを取得するにはどうすればよいtextLayer
ですか?
基本的に、私はのようなものが欲しいです-[UILabel sizeToFit]
。
最初に行う必要があるのは、テキストのサイズを取得することです。
ありがたいことに、NSString UIKit Additions Referenceはまさにそれを行う方法を提供します:
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
これにより、使用しているフレームまたはサブクラスのCGSize
フレームを設定するために使用できるが得られます。UILabel
UIView
したがって、textLayer
aUILabel
ではなくa であると仮定CALayer
すると、次のようになります。
UIFont *myFont = [UIFont boldSystemFontOfSize:12.0f];
CGSize myFontSize = [myString sizeWithFont:myFont];
myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, myFontSize.width, myFontSize.height)];
myLabel.text = newTitle;
myLabel.font = myFont;