0

我有以下内容:

-(float)getLength:(NSString *)text
{
    UIFont *font = [UIFont fontWithName:@"Scurlock" size:20];
    CGSize size = [text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font, 
        NSFontAttributeName, nil]];
    return size.width;
}

这会产生一个编译时错误:“'NSString' 没有可见的@interface 声明选择器'sizeWithAttributes。'”

我已经搜索过,看起来消息 sizeWithAttributes 适合将呈现的尺寸传递给 NSString。然而,Xcode 似乎不同意。

一旦给出了字体,也许是用于开发海豚的 Verdana,我如何/应该查询字符串的尺寸,因为它们将被呈现?

4

2 回答 2

0

尝试这个

一些预定义值

    #define FONT_SIZE 14.0f
#define CELL_CONTENT_WIDTH 320.0f
#define CELL_CONTENT_MARGIN 0.0f 



NSString *text = @"abcdefghijklmnopqrstuvwxyz";
    CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
    CGSize size = [text sizeWithFont:[UIFont fontWithName:@"XYZ" size:@"12"] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
    CGFloat height = MAX(size.height+30, 38.0f);
于 2013-09-26T11:28:00.727 回答
0

使用 NSAttributedString。

 - (CGFloat)widthOfString:(NSString *)string withFont:(NSFont *)font {
 NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil];
 return [[[NSAttributedString alloc] initWithString:string attributes:attributes] size].width;
}

从这里回答。

于 2013-09-26T11:20:48.497 回答