2011-11-21 103 views
6

如果我設置textLayer.wrapped = YES,如何調整textLayer以包含包裝文本?即,如何獲得textLayer的新高度?CATextLayer包裹sizeToFit?

基本上,我想要類似-[UILabel sizeToFit]

+0

想知道關於太.. – Nils

回答

2

您需要做的第一件事就是獲取文本的大小。

幸運的是,NSString UIKit Additions Reference提供了一個方法來做到這點:

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

這會給你一個CGSize,你就可以使用設置你的UILabel或任何子類的UIView那你的框架使用。

因此,假設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。 –