iOS 7上UISegmentedControl的选定段的色调不正确

时间:2013-09-20 04:17:58

标签: ios objective-c ios7

我在UIToolbar中有一个带有自定义背景/分隔图像的UISegmentedControl。通过iOS 6,这显示正确,但从iOS 7开始,所选片段将该片段的前景图像显示为剪切片(显示下方的工具栏),而不是其他片段显示为的白色。

Incorrect tint color on iOS 7

是否有任何想法,如果只有我缺少的东西让它表现得像预期的那样?

在有人说之前,我不会使用默认的iOS 7 UISegmentedControl外观,因为我发现它很可怕。

2 个答案:

答案 0 :(得分:7)

没关系。我发布后不久便知道了。

除非另有说明,否则

UISegmentedControl会将其图像解释为处于渲染模式UIImageRenderingModeAlwaysTemplate

我必须在[UIImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]的每个网段图片上使用 - iOS 7来实现之前的行为。

答案 1 :(得分:2)

使用此代码在iOS 7中使用xCode 5

在Segment Control上设置图像
if ([UIImage instancesRespondToSelector:@selector(imageWithRenderingMode:)]) {

    [segmentControl setImage:[[UIImage imageNamed:@"image.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forSegmentAtIndex:0];

}
else {
    [segmentControl setImage:[UIImage imageNamed:@"image.png"] forSegmentAtIndex:0];
}