2011-11-21 7 views
6

textLayer.wrapped = YESを設定した場合、ラップされたテキストを含むようにtextLayerのサイズを変更するにはどうすればよいですか?私は、textLayerの新しい高さをどうやって得るのですか?CATextLayer wrapped sizeToFit?

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

+0

あまりにもそのことについて思っていた... – Nils

答えて

2

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

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

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

あなたが、あなたがしているUIViewのごUILabelまたは任意のサブクラスの枠を設定するために使用することができますCGSizeを与えることを使用して。

textLayerUILabelであると仮定ので、 - というよりも、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; 
+1

質問はCALayerのためのものです。 –

関連する問題