如果我设置
基本上,我想要类似于
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
是一个UILabel
,而不是一个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;