NSString sizeWithFont倒置

时间:2011-12-15 16:49:27

标签: iphone objective-c uikit

我们有这个功能:

CGSize size = [cell.textLabel.text sizeWithFont:cell.textLabel.font constrainedToSize:CGSizeMake(cellWidth, FLT_MAX)];

我们可以倒掉吗? 我想看看文字,我的字体可以是这个尺寸。 你有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你的意思是CTFramesetterSuggestFrameSizeWithConstraints?假设某些约束条件,它可用于获取文本范围。

答案 1 :(得分:1)

我找到了很好的解决方案:

- (NSString*)stringVisibleInRect:(CGRect)rect inString:(NSString *)string {
    NSArray *words = [string componentsSeparatedByString:@" "];
    NSString *testString = [[NSString alloc] init];
    NSString *visibleString = @"";
    for (int i = 0; i < [words count] && [words count] > 0; i++)
    {
        NSString *newString = (NSString *)[words objectAtIndex:i];
        testString =[testString stringByAppendingFormat:@"%@ ",newString];

        CGSize maximumSize = CGSizeMake(rect.size.width, 9999);

        CGSize stringSize = [testString sizeWithFont:font
                                   constrainedToSize:maximumSize 
                                       lineBreakMode:UILineBreakModeWordWrap];

        if (stringSize.height > rect.size.height) // || stringSize.width > rect.size.width)
            break;

        visibleString = testString;
    }
    words = nil;
    return visibleString;
}