0

UITableView を使用して iOS アプリにデータを表示しています。問題は、cell.textLabel.textandcell.detailTextLabel.textが可変であることです。たとえば、電話番号のセルは「Phone1」または「Toll Free in the USA or Canada」のようになります。2 番目のケースでは、文字列を「Toll Free in the USA or Canada」のように編集したいと考えています。したがって、文字列を取り、カットする必要があるかどうかを判断し、必要な場合はカットする何らかのメソッドが必要です。

これが私がこれまでに持っているものです:

NSString *stringToCut;  // This would be inputted
NSString *newString;    // This is the resultant string
int maxLength = 15;     // The maximum length.

if ([stringToCut length] > maxLength)
{
    //This is the problem: How do I find a space (" ") near the middle?
    int half = [stringToCut length]/2;
    int locationOfSpaceNearHalf = ???
    newString = [stringToCut subStringFromIndex:locationOfSpaceNearHalf];
    newString = [newString stringByAppendingFormat:@"\n"];
    newString = [newstring stringByAppendingString:[stringToCut subStringFromIndex:locationofSpaceNearHalf+1]];
}
else 
{
    newString = stringToCut;
}

return newString;

私が考えることができる唯一のことは、すべてのスペースの場所を生成するループを実行してから、途中で最も近いものを見つけることです。

アップデート

ここに 2 つの図があります。最初の図は、テキストに書式設定を行わなかった場合の外観です。2 つ目は、フォーマットがあればどうなるかです。

悪い 良い

または、テキストをフォーマットするより良い方法はありますか?

4

1 に答える 1

1

何を達成しようとしているのですか?デフォルトの UILabel の動作で十分ではありませんか? それが役立つかどうかはわかりませんが、 sizeWithFont:constrainedToSize:onを呼び出すことでレンダリングされる完全な文字列のサイズを取得しNSString、それを使用して文字列が収まるかどうかを確認できます...

そうでない場合は、説明してください:)

于 2013-08-16T20:22:42.713 に答える