IOS:如何计算要绘制BEFORE以创建上下文的文本大小?

前端之家收集整理的这篇文章主要介绍了IOS:如何计算要绘制BEFORE以创建上下文的文本大小?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要创建一个包含一行文本的图像.但问题是,我首先需要创建上下文(CGBitmapContextCreate),要求图像的宽度和高度有可能在以后计算文本的边界(通过CTLineGet ImageBounds).但我希望图像的大小=文本的边界:(我该怎么办?

实际上我用

CGBitmapContextCreate
CTLineGetImageBounds
CTLineDraw

也许可以在没有上下文的情况下调用CTLineGetImageBounds?

注意:我在delphi上,这不是一个真正的问题,因为我可以访问所有的API,我只需要函数名称

解决方法

您可以通过执行以下操作,根据要使用的字体计算NSString将占用的空间:
NSString *testString = @"A test string";
CGSize boundingSize = self.bounds.size;
CGRect labelRect = [testString
                    boundingRectWithSize:boundingSize
                    options:NSStringDrawingUsesLineFragmentOrigin
                    attributes:@{ 
                        NSFontAttributeName : [UIFont systemFontOfSize:14]
                                }
                    context:nil];

其中边界大小是您希望图像的最大大小.然后,您可以使用计算的大小来创建图像.

猜你在找的iOS相关文章