【发布时间】:2014-12-15 21:17:01
【问题描述】:
我在 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]];
}
}
外循环用于标签,内循环用于分隔符。
请问还有其他/更好的想法吗?谢谢...
【问题讨论】:
-
来吧,什么都没有……? :)
-
我在 iOS8.1 上遇到了类似的问题,你的解决方案就像一个魅力!谢谢。
标签: objective-c uisegmentedcontrol tintcolor