UISegmentedControl颜色问题 - 颜色在模拟器上显示正常,而不在设备上

时间:2013-06-07 10:29:14

标签: iphone ios objective-c xcode uisegmentedcontrol

固定!

你不会相信它......这是一个Winterboard主题搞乱它!开玩笑!禁用主题和瞧,完美的工作。对于任何感兴趣的人来说,有问题的主题是“Ayecorn”。不酷!希望这可以帮助遇到同样问题的其他人。

对不起朋友们,感谢所有的投入!很棒的社区。

原始问题:

Xcode 4.5中的一个简单测试iPhone应用程序:

通过Storyboard创建一个带有UISegmentedControl的视图,并通过属性检查器设置颜色。

在模拟器上运行,颜色显示正常:

enter image description here

在设备上运行,颜色是透视/清除。

enter image description here

(在上面的例子中是的,我已经对各个细分市场进行了着色,但我甚至创建了一个新项目,在视图中添加了段控制(Bar Type),它出来了,看看是什么!?给出了什么?

之前有过这方面的人,并且有过如何纠正这个问题的建议吗?

谢谢

4 个答案:

答案 0 :(得分:1)

您的模拟器可能已缓存您之前使用的旧图像。清理模拟器和整个项目,以确保图像在模拟器上正确加载。

答案 1 :(得分:1)

尝试粘贴以下代码

- (void)viewDidLoad
{
    UISegmentedControl *segmentControl=[[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"1",@"2",nil] ];
    [segmentControl setSegmentedControlStyle:UISegmentedControlStyleBar];
    [segmentControl setFrame:CGRectMake(20, 20, 200, 30)];

    [self.view addSubview:segmentControl];

    [segmentControl addTarget:self action:@selector(changeSegment:) forControlEvents:UIControlEventValueChanged];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

-(void)changeSegment:(UISegmentedControl*)sender
{
    for (int i=0; i<[sender.subviews count]; i++)
    {
        UIColor *tintcolor;
        if ([[sender.subviews objectAtIndex:i]isSelected] )
        {
            tintcolor=[UIColor redColor];
            [[sender.subviews objectAtIndex:i] setTintColor:tintcolor];
        }

        if (![[sender.subviews objectAtIndex:i]isSelected]){
            tintcolor=[UIColor grayColor];
            [[sender.subviews objectAtIndex:i] setTintColor:tintcolor];
        }
    }
}

答案 2 :(得分:0)

您可以在查看属性绘图部分取消选中 Opaque 选项。

我模糊地回忆一下类似的问题,模拟器上的行为与设备的行为不同,而且与不透明设置有关。

答案 3 :(得分:0)

你不会相信它......这是一个Winterboard主题搞乱它!开玩笑!禁用主题和瞧,完美的工作。对于任何感兴趣的人来说,有问题的主题是“Ayecorn”。不酷!

感谢所有输入人员!很棒的社区!