我需要在Cocoa Touch中测量字符串的像素宽度。有没有人能指向一个解释如何实现这一功能的链接呢?
我需要在Cocoa Touch中测量字符串的像素宽度。有没有人能指向一个解释如何实现这一功能的链接呢?
在iPhone OS上,情况略有不同,您需要查看NSString UIKit Additions Reference。这个想法与Mac OS X的Cocoa相同,但是有更多的方法。
对于单行文本,请使用:
- (CGSize)sizeWithFont:(UIFont *)font
forWidth:(CGFloat)width
lineBreakMode:(UILineBreakMode)lineBreakMode
对于多行文本,请使用:
- (CGSize)sizeWithFont:(UIFont *)font
constrainedToSize:(CGSize)size
lineBreakMode:(UILineBreakMode)lineBreakMode
在处理单行文本时,使用 UILineBreakMode
作为参数可能会令人困惑,但这是因为换行符也被用来定义如何截断文本。
boundingRectWithSize:options:attributes:
,文档并不是非常清晰。如果你能添加一个关于如何使用这个方法来测量特定字体字符串的示例将会很好。 - PeyloW上述解决方案现已过时。请查看iOS 7+的内容。
sizeWithFont:constrainedToSize:lineBreakMode
已经过时了。请使用以下代码片段:
UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];
NSString *name = @"APPLE";
CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];