Cocoa touch 测量字符串的像素宽度

Cocoa touch 测量字符串的像素宽度,cocoa-touch,graphics,nsstring,width,Cocoa Touch,Graphics,Nsstring,Width,我需要在Cocoa Touch中测量字符串的像素宽度。有人能给我指一个链接来解释如何做到这一点吗?请看一下。该例程返回的值应该为您提供iPhone操作系统上的NSString的宽度。它稍有不同,请查看。这个想法与Cocoa for Mac OS X中的想法相同,但有更多的方法 对于单行文本,请使用: - (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMod

我需要在Cocoa Touch中测量字符串的像素宽度。有人能给我指一个链接来解释如何做到这一点吗?

请看一下。该例程返回的值应该为您提供iPhone操作系统上的
NSString

的宽度。它稍有不同,请查看。这个想法与Cocoa for Mac OS X中的想法相同,但有更多的方法

对于单行文本,请使用:

- (CGSize)sizeWithFont:(UIFont *)font 
              forWidth:(CGFloat)width 
         lineBreakMode:(UILineBreakMode)lineBreakMode
对于多行文本,请使用:

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

使用
UILineBreakMode
作为单行文本的参数可能会令人困惑,但这是因为换行符还用于定义如何截断文本。

上述解决方案现在已被弃用。检查iOS 7的这个+

 sizeWithFont:constrainedToSize:lineBreakMode 
现在不推荐使用。使用下面的代码段

UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];

NSString *name = @"APPLE";

CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];

当这个问题实际上是关于MacOSX的Cocoa或iPhoneOS的Cocoa Touch的功能时,你不应该问一个通用的objective-c答案。Objective-C只是Cocoa和Cocoa Touch都使用的编程语言。除了为Mac OS或IOS编程外,Objective-C还有其他用途吗?如果是这样的话,它是否重要?文档中没有非常清楚地说明如何实际使用
boundingRectWithSize:options:attributes:
。如果您可以添加一个示例,说明如何实际使用此方法测量具有特定字体的字符串,那就太好了。这似乎适用于普通字体,但似乎没有给出Zapfino等字体的确切界限。示例代码位于,输出屏幕截图位于。知道为什么以及如何解决它吗?在iOS7中已弃用。。这些文件没有提及任何替换。。是否有?当前的iOS7文档(Xcode 5.0.1)确实提到了替换(通常仅限于iOS7)。lineBreakMode选项现在从NS开始。e、 g.NSLineBreakByWordWrapping