2

私のアプリケーションでは、UILabelたとえば、ユーザーがボタンを押すたびに、ラベルの最後に「1」が追加されるなど、エントリの数が増える を保持しています。ただし、ラベルに追加のエントリを追加すると、コンテナのサイズがオーバーランし、醜い「111 ...」ラベルになり、望ましい動作が次の行に沿ったものになる時期を検出できるようにしたいと考えています。

int maximumLengthBeforeOverrun = self.maximumLengthBeforeLabelOverrun;
if(label.text.length > maximumLengthBeforeOverrun) {
    NSString * newLabel = [label.text substringTo:label.text.length - 1]
    label.text = newLabel;
}
label.text = [label.text appendWithString:toAppend]

私の質問は、IOS SDK にこれを行う方法がありますか? または、情報を表示するために別のアプローチを使用する必要がありますか?

4

2 に答える 2

4

あなたが使用することができますsizeWithFont

NSString *str = @"Test String";
CGSize size = [str sizeWithFont:label.font];

次に、 size を使用して label.frame.size と比較します

于 2012-07-01T17:38:29.640 に答える
1

sizeWithFont は iOS 7 で廃止されたため、 sizeWithAttributes を使用する必要があります

NSString *str = @"Test String";
NSDictionary *attributes = @{NSFontAttributeName: label.font};
CGSize size = [str sizeWithAttributes:attributes];
于 2014-11-14T17:17:52.697 に答える