更新 titleLabel UIButton
Posted
技术标签:
【中文标题】更新 titleLabel UIButton【英文标题】:Update titleLabel UIButton 【发布时间】:2014-01-21 15:48:31 【问题描述】:我有一个带有 titleLabel 的 UIButton,例如,像这样:@"Download it!"
我想在下载完成后,用另一个文本更新我的按钮的titleLabel,例如:@"Already downloaded!"
我可以更改状态(启用或不启用)但无法刷新/更新 UIButton 的 titleLabel。
知道怎么做吗?我试过[myButton setNeedsDisplay];
,但它不起作用。
感谢您的建议和帮助。
更新 1: 解决方案:
[yourButton setTitle:<#(NSString *)#> forState:<#(UIControlState)#>]
【问题讨论】:
你在用[button setTitle: forState:]来更新它吗? +1,谢谢大家! @Lapinou。 .一个建议。如果你得到了你的问题的答案,最好接受一个答案(这里的任何一个)。这样问题就不会出现在“未回答的问题”中。希望你理解.. @achievelimitless 您正在为 UIButton 的不同状态(如正常或突出显示)提供答案,但在下载完成时不提供答案。当按钮被按下或突出显示时,下载不需要完成。 @Lapinou 看看我的回答。这与 UIButtonStates 无关 【参考方案1】:你试过了吗?
[yourButton setTitle:<#(NSString *)#> forState:<#(UIControlState)#>]
【讨论】:
【参考方案2】:您可以更改按钮标题标签中的文本。
[aButton setTitle:@"Already downloaded!" forState:UIControlStateNormal];
有关该主题的更多信息以及控件状态的完整列表,请参阅:https://developer.apple.com/library/ios/documentation/uikit/reference/uicontrol_class/reference/reference.html#//apple_ref/doc/c_ref/UIControlState
【讨论】:
【参考方案3】:本文解释的所有示例都解释了按钮各种状态的标题更改,例如UIControlStateNormal
、UIControlStateHighlighted
,但在下载完成时并没有这样做。
最简单的方法是通知您的viewController
某个过程(下载)已完成。然后根据需要更改按钮标题。
可以试试这个代码。
在你的 ViewController viewDidLoad
中添加一个按钮和一个通知观察者
self.someButton.title = @"Download Now"; // set the button title
// Add notification Observer
[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(notifyDownloadComplete:)
name:@"DOWNLOAD_COMPLETE"
object:nil];
现在定义观察者的目标方法来执行按钮标题更改为
-(void)notifyDownloadComplete:(NSNotification*)note
self.someButton.title = @"Already Downloaded";
现在通过 GCD 添加一个下载方法,然后在完成后发布通知。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
//Here your non-main thread. Try Downloading something
dispatch_async(dispatch_get_main_queue(), ^
//Here you returns to main thread.
[[NSNotificationCenter defaultCenter] postNotificationName:@"DOWNLOAD_COMPLETE"
object:nil];
);
);
这会将self.someButton
的标题更改为您想要的任何名称,例如Already Downloaded
。
希望对您有所帮助。
【讨论】:
以上是关于更新 titleLabel UIButton的主要内容,如果未能解决你的问题,请参考以下文章