如何在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)