UISegmentedControl tintColor /消失IOS 7.1中的错误

时间:2014-06-25 08:07:55

标签: objective-c uisegmentedcontrol tintcolor

我在AppDelegate.m [UISegmentedControl appearance]中通过didFinishLaunchingWithOptions设置色调颜色,最初看不出任何问题。在任何屏幕上显示警报视图后,所有UISegmentedControl个实例的色调颜色将重置(到clearColorwhiteColor,无需检查)应用程序范围内。他们只是消失了。

这是我使用的警报视图:

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]];
    }
}

外圈用于标签,内圈用于分隔符。

还有其他/更好的想法吗?谢谢......

1 个答案:

答案 0 :(得分:1)

在AppDelegate中编写此代码

self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;