我在AppDelegate.m [UISegmentedControl appearance]
中通过didFinishLaunchingWithOptions
设置色调颜色,最初看不出任何问题。在任何屏幕上显示警报视图后,所有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]];
}
}
外圈用于标签,内圈用于分隔符。
还有其他/更好的想法吗?谢谢......
答案 0 :(得分:1)
在AppDelegate中编写此代码
self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;