【问题标题】:UISegmentedControl tintColor/disappear bug in IOS 7.1IOS 7.1 中的 UISegmentedControl tintColor/disappear 错误
【发布时间】:2014-12-15 21:17:01
【问题描述】:

我在 AppDelegate.m:didFinishLaunchingWithOptions 中通过[UISegmentedControl appearance] 设置了色调颜色,最初没有发现任何问题。在任何屏幕上显示警报视图后,所有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]];
    }
}

外循环用于标签,内循环用于分隔符。

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

【问题讨论】:

  • 来吧,什么都没有……? :)
  • 我在 iOS8.1 上遇到了类似的问题,你的解决方案就像一个魅力!谢谢。

标签: objective-c uisegmentedcontrol tintcolor


【解决方案1】:

在 AppDelegate 中编写这段代码

self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;

【讨论】:

  • 我们将项目切换到一个全新的用户界面,所以我仍然没有机会尝试这个。我会在检查后立即提供反馈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
相关资源
最近更新 更多