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您可以用来设置您的框架或您正在使用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;
于 2012-01-30T18:21:21.833 回答