8

を設定した場合、折り返されたテキストを含むtextLayer.wrapped = YESようにサイズを変更するにはどうすればよいですか? textLayerつまり、の新しい高さを取得するにはどうすればよいtextLayerですか?

基本的に、私はのようなものが欲しいです-[UILabel sizeToFit]

4

1 に答える 1

2

最初に行う必要があるのは、テキストのサイズを取得することです。

ありがたいことに、NSString UIKit Additions Referenceはまさにそれを行う方法を提供します:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

これにより、使用しているフレームまたはサブクラスのCGSizeフレームを設定するために使用できるが得られます。UILabelUIView

したがって、textLayeraUILabelではなく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;
于 2012-01-30T18:21:21.833 に答える