我在AppDelegate.m:didFinishLaunchingWithOptions中通过[UISegmentedControl appearance]设置了色调颜色,最初没有看到任何问题。在任何屏幕上显示警报视图后,所有UISegmentedControl实例的色调颜色都会在整个应用程序范围内重置(设置为clearColor或whiteColor,无需检查)。它们就这么消失了。
这是我使用的警报视图:
https://www.cocoacontrols.com/controls/sialertview
在viewDidLoad中像下面这样设置色调颜色并没有改变任何东西,尽管我可以在调试中看到应用程序命中了这一行。
[self.segmentedControl setTintColor:[UIColor blackColor]];我能想到的唯一解决方案就是这样,它也可以在viewDidLoad中运行
for (int i = 0; i < [segmentedControl.subviews count]; i++)
{
[[segmentedControl.subviews objectAtIndex:i] setTintColor:[UIColor blackColor]];
for (int j = 0; j < [((UIView*)[segmentedControl.subviews objectAtIndex:i]).subviews count]; j++)
{
[[((UIView*)[segmentedControl.subviews objectAtIndex:i]).subviews objectAtIndex:j] setTintColor:[UIColor blackColor]];
}
}外部循环用于标签,内部循环用于分隔符。
还有其他/更好的主意吗?谢谢..。
发布于 2014-12-15 21:17:02
用AppDelegate编写这段代码
self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;https://stackoverflow.com/questions/24403357
复制相似问题