3

如果我有字符串“生活是美好的”。现在我需要从适合宽度 40 的字符串中提取一些单词。如何从目标 C 中实现这一点?

4

2 回答 2

1

您可以sizeWithFont:在循环中使用该方法,如下所示:

NSString *longestFitting = nil;
NSString *orig = "Life is Good";
UIFont *font = ...;
for (int i = orig.length-1 ; i > 1 ; i--) {
    NSString *tmp = [orig substringToIndex:i];
    if ([tmp sizeWithFont:font].width <= 40) {
        longestFitting = tmp;
        break;
    }
}
于 2012-07-18T11:46:49.800 回答
1

您的答案是正确的,但要准确地适合 40 我已将 <= 更正为 == 所以新代码将是

 NSString *longestFitting = nil;
 NSString *orig = "Life is Good";
 UIFont *font = ...; 
 for (int i = orig.length-1 ; i > 1 ; i--) 
{
 NSString *tmp = [orig substringToIndex:i]; 
 if ([tmp sizeWithFont:font].width == 40) 
 {
   longestFitting = tmp; 
   break;
 } 
} 
于 2012-07-18T12:14:22.450 回答