我有一个按钮可以推到设置 viewController
.在那个设置viewController
我有一个开关可以反转原始 View 上的所有颜色,这是我以编程方式完成的反转。我制作了倒置按钮图像来替换原始图像。
当我返回原始 View 时,我有 viewWillAppear
如果开关已翻转,则调用该方法进行反转。除了两个禁用的按钮外,一切都会相应地发生变化。
开关值保存在默认设置下,以便用户可以退出应用程序并稍后返回,但颜色仍会反转。当viewDidLoad
调用 invert 方法,按钮改变得很好,它们甚至显示调整以显示它们被禁用。
知道会发生什么吗?
-(void)invert{
self.view.backgroundColor = [UIColor blackColor];
//Buttons
[self.stopButton setImage:[UIImage imageNamed:@"stopinverted"]
forState:UIControlStateNormal];
[self.playButton setImage:[UIImage imageNamed:@"playinverted"]
forState:UIControlStateNormal];
}
-(void)viewWillAppear:(BOOL)animated{
_inverted =
[[NSUserDefaults standardUserDefaults] boolForKey:@"isInvertedOn"];
[[NSUserDefaults standardUserDefaults] synchronize];
if(_inverted){
[self invert];
} else {
[self unInvert];
}
[super viewWillAppear:(BOOL)animated];
}
最佳答案
问题似乎是图像没有自动更新,您需要重置 enabled
使其工作的值(value):
[self.stopButton setImage:[UIImage imageNamed:@"stopinverted"]
forState:UIControlStateNormal];
self.stopButton.enabled = ! self.stopButton.enabled;
self.stopButton.enabled = ! self.stopButton.enabled;
[self.playButton setImage:[UIImage imageNamed:@"playinverted"]
forState:UIControlStateNormal];
self.playButton.enabled = ! self.playButton.enabled;
self.playButton.enabled = ! self.playButton.enabled;
关于ios - 禁用按钮不更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609065/