[英]How to Change textLabel property in UIButton programmatically in iOS?
我有一個應該有2種狀態的UIButton
- “播放”和“暫停”; 即 - 在用戶第一次看到它時顯示“播放”,然后每當用戶點擊它時,它應該在“播放”和“暫停”之間切換。
我設法創建控制器本身 - 內容正確播放和暫停 - 但我似乎無法更改UIButton文本標簽文本。
我用:
myButton.titleLabel.text = @"Play";
myButton.titleLabel.text = @"Pause";
它不起作用。 文字沒有改變。 我也試過[myButton.titleLabel setText:@“Pause”]並且它也不能正常工作。
我怎么設置它?
它應該是:
[myButton setTitle:@"Play" forState:UIControlStateNormal];
你也需要傳遞state
。 你可以在這里查看其他state
。
然后你可以做這樣的事情:
[myButton setTitle:@"Play" forState:UIControlStateNormal];
[myButton setTitle:@"Stop" forState:UIControlStateSelected];
SWIFT 4
myButton.setTitle("Pause", for: .normal)
我發現這有點過時,因為添加了屬性字符串。 顯然,故事板中分配的按鈕標題屬於字符串。 歸屬標題優先於NSString標題,因此如果您想使用簡單字符串作為標題,則必須先刪除屬性標題。 我做了如下,雖然可能有更好的方法。 當然,您可以將新標題也設為屬性字符串。
[myButton setAttributedTitle: nil forState: 0xffff];
[myButton setTitle: @"Play" forState: UIControlStateNormal];
如果您想在頁面加載時加載它,並支持本地化語言:
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (self.flagToChangeLabel){
NSString* newBtnTitle = NSLocalizedString(@"LOCALIZED_KEY", nil);
[self.laterButton setTitle:newBtnTitle forState:UIControlStateNormal];
[self.laterButton setTitle:newBtnTitle forState:UIControlStateSelected];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.