簡體   English   中英

如何在iOS中以編程方式更改UIButton中的textLabel屬性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM