我使用NSLocalizableStringFromTable來設置我的用戶界面的各種組件的文本。當文本比「界面」構建器中的佔位符文本長時,我遇到了UIButton的問題。這是比較英語和西班牙語的「保存」按鈕的例子:UIButton沒有正確調整currentTitle
當我使用的NSLog檢查_theSaveButton的價值,我得到
_theSaveButton。 titleLabel =「保存」
_theSaveButton。 currentTitle = 「和保存」
我一直在使用[_theSaveButton sizeToFit]試過了,但這似乎總是大小的titleLabel而非currentTitle。
下面是一個簡單的代碼片段:
[_theSaveButton setAttributedTitle:nil forState:UIControlStateNormal];
[_theSaveButton setTitle:NSLocalizedStringFromTable(@"Save", applicationLanguage,nil) forState: UIControlStateNormal];
NSLog(@"%@",_theSaveButton.currentTitle);
NSLog(@"%@",_theSaveButton.titleLabel);
[_theSaveButton sizeToFit];
第一行:我已經包括了setAttributedTitle:這裏nil元素,因爲我在其他地方,這種解決別人的問題看,但它只是在這裏娛樂據我所知。
第二行:setTitle方法似乎正確設置了currentTitle,並且UI上的文本更改如上所示。
所以,最後,我只是想要按鈕來調整大小來處理本地化的標題。
其他說明:
- 我正在使用AutoLayout。我曾嘗試設置寬度約束。目前,我只對後緣和垂直線有限制。沒有什麼應該限制寬度。 - 我嘗試在界面生成器中將文本更改爲非常長的內容,但這沒有任何影響。
感謝您的回覆。那是我第一次猜測。但我已經嘗試了從太陽下的所有東西的完全約束定義到沒有約束的每個變體。我再次嘗試,使用你的建議,不幸的是,我得到了和以前一樣的結果。我認爲正在發生的一部分是文本大小計算來自UIButton.textLabel.text而不是UIButton.currentTitle。但這是一個猜測。 – plm