2012-07-01 31 views
2

在我的應用程序中,我有一個UILabel,它保存着不斷增加的條目數量,例如每次用戶按下按鈕時,標籤的末尾都會添加一個「1」。 但是,我希望能夠檢測何時向標籤添加額外條目會導致它超出其容器的大小,併成爲一個醜陋的「111 ...」標籤,其所需行爲是沿着以下方向的行爲:是否可以檢測標籤是否即將在IOS中運行?

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

你可以使用sizeWithFont

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

然後使用規模將它與label.frame.size比較

+0

廠像一個魅力,謝謝。 – ahjmorton

+0

歡迎您:) –

1

sizeWithFont在iOS的7棄用,所以你需要使用sizeWithAttributes

NSString *str = @"Test String"; 
NSDictionary *attributes = @{NSFontAttributeName: label.font}; 
CGSize size = [str sizeWithAttributes:attributes]; 
相關問題