CATextLayer包裹sizeToFit?

时间:2011-11-21 22:44:03

标签: core-animation uilabel core-text catextlayer sizetofit

如果我设置textLayer.wrapped = YES,如何调整textLayer的大小以包含已包装的文字?即,如何获得textLayer的新高度?

基本上,我想要像-[UILabel sizeToFit]这样的东西。

1 个答案:

答案 0 :(得分:2)

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

值得庆幸的是,NSString UIKit Additions Reference提供了一种方法:

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

这将为您提供CGSize,然后您可以使用UILabel设置UIView的框架或您正在使用的textLayer的任何子类。

所以,假设UILabelCALayer - 而不是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}}