3

文字列「Life is Good」がある場合。今、幅40に収まるその文字列からいくつかの単語を抽出する必要があります.どうすれば客観的なCからこれを達成できますか?

4

2 に答える 2

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 に答える
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 に答える