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

如何在iOS中以编程方式更改UIButton中的textLabel属性?,ios,uibutton,label,title,Ios,Uibutton,Label,Title,我有一个ui按钮,应该有两种状态——“播放”和“暂停”;i、 e.-用户第一次看到它时,它会说“播放”,然后每当用户单击它时,它就会在“播放”和“暂停”之间切换 我设法创建了控制器本身-内容被正确播放和暂停-但我似乎无法更改UIButton文本标签文本 我使用: myButton.titleLabel.text = @"Play"; myButton.titleLabel.text = @"Pause"; 它不起作用了。文本没有改变。我还尝试了[myButton.titleLabel set

我有一个
ui按钮
,应该有两种状态——“播放”和“暂停”;i、 e.-用户第一次看到它时,它会说“播放”,然后每当用户单击它时,它就会在“播放”和“暂停”之间切换

我设法创建了控制器本身-内容被正确播放和暂停-但我似乎无法更改UIButton文本标签文本

我使用:

myButton.titleLabel.text = @"Play";

myButton.titleLabel.text = @"Pause";
它不起作用了。文本没有改变。我还尝试了[myButton.titleLabel setText:@“暂停”],但效果不佳

我如何设置它

应该是:

[myButton setTitle:@"Play" forState:UIControlStateNormal];
您还需要传递
状态
。您可以检查其他
状态

然后,您可以执行以下操作:

[myButton setTitle:@"Play" forState:UIControlStateNormal];
[myButton setTitle:@"Stop" forState:UIControlStateSelected];

如果要在页面加载时加载,并支持本地化语言:

-(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];
    }
}

我发现这有点过时,因为添加了属性字符串。显然,故事板中指定的按钮标题是属性字符串。属性化标题优先于NSString标题,因此,如果要将简单字符串用作标题,必须先删除属性化标题。我做了如下,虽然可能有更好的方法。当然,您也可以将新标题设置为属性字符串

[myButton setAttributedTitle: nil     forState: 0xffff];
[myButton           setTitle: @"Play" forState: UIControlStateNormal];

SWIFT 4

myButton.setTitle("Pause", for: .normal)