弹出窗口推入时的TintColor更改

6
我正在将窗口的色调设置为任意颜色,然后尝试按照每个按钮来覆盖它,但是当按钮上应用了转场时,它们似乎会恢复到窗口色调颜色。

在didFinishLaunchingWithOptions中设置色调:

self.window.tintColor = [UIColor redColor];

然后,在viewDidLoad中添加两个按钮:

[self.button1 setImage:[[UIImage imageNamed:@"711-trash"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
self.button1.tintColor = [UIColor purpleColor];

self.button2.tintColor = [UIColor blueColor];

其中 button1 是自定义类型按钮,button2 是系统类型按钮。

enter image description here

当弹出窗口第一次出现时,两个按钮会被染成紫色和蓝色。但是当 Segue 视图控制器被推出后,弹出窗口两个按钮会变成红色。有没有办法阻止这种情况发生?

编辑:

enter image description here


你有尝试在viewWillAppear中设置颜色吗? - Leonardo
@Leonardo 同样的问题,似乎不受viewWillAppear的影响。 - PF1
很奇怪,你有没有在其他地方设置tintColor的可能性? - John
@user3779315 我可以随时设置色调的颜色,但每次我这样做时,都会出现相同的行为。 - PF1
1个回答

3

我已经尝试像这样复制您的代码:

Storyboard & code

然而一切都按预期工作:

Result on simulator

我同意@user3779315的观点,可能你在其他地方设置了按钮的色调。顺便说一下,你的项目的额外代码可以帮助澄清问题 :-)

是的,我确实执行了 self.window.tintColor = [UIColor redColor]; :) 否则你将无法看到具有红色tintColor的按钮,就像屏幕截图中一样。 - Ducky
好的观点...iPad模拟器怎么样?当我用iPhone进行测试时,预期的行为是正确的,但是在iPad上却不是。 - PF1
我实际上是在iPad上进行测试的。我没有发布iPad模拟器的截屏,但结果相同。 - Ducky
非常奇怪,我发布的示例代码是我的项目中唯一的代码,但它却无法工作。 - PF1
这是我创建的一个非常简单的项目,用于尝试复制您的问题:https://gitlab.com/dobaduc/PopOverTint。它在Xcode GM上运行...您用于测试的iOS版本是什么? - Ducky
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接