测量字符串的像素宽度

Mik*_*012 16 graphics cocoa-touch width nsstring

我需要测量Cocoa Touch中字符串的像素宽度.任何人都可以指向我解释如何做到这一点的链接?

Pey*_*loW 27

在iPhone OS上它略有不同,而是查看NSString UIKit Additions Reference.这个想法与Cocoa for Mac OS X中的想法相同,但有更多的方法.

对于单行文本使用:

- (CGSize)sizeWithFont:(UIFont *)font 
              forWidth:(CGFloat)width 
         lineBreakMode:(UILineBreakMode)lineBreakMode
Run Code Online (Sandbox Code Playgroud)

对于多行文本使用:

- (CGSize)sizeWithFont:(UIFont *)font 
     constrainedToSize:(CGSize)size 
         lineBreakMode:(UILineBreakMode)lineBreakMode
Run Code Online (Sandbox Code Playgroud)

UILineBreakMode对单行文本使用as参数可能会造成混淆,但这是因为换行符也用于定义如何截断文本.


fbr*_*eto 5

具体来说,请查看NSString Application Kit Additions ReferenceboundingRectWithSize:options:attributes:.该例程返回的值应该为您提供宽度NSString.

  • 关于如何实际使用`boundingRectWithSize:options:attributes:`的文档不是很清楚.如果您可以添加一个如何实际使用此方法来测量具有特定字体的字符串的示例,那将是很好的. (8认同)