3

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

iOS 7 上的颜色不正确

关于我是否缺少某些东西以使其按预期运行的任何想法?

在任何人说之前,我不会使用默认的 iOS 7 UISegmentedControl 外观,因为我觉得它很可怕。

4

2 回答 2

7

没关系。我在发帖后不久就想通了。

UISegmentedControlUIImageRenderingModeAlwaysTemplate除非另有说明,否则将其图像解释为处于渲染模式。

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

于 2013-09-20T04:25:34.433 回答
2

使用此代码在带有 xCode 5 的 iOS 7 中的 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];
}
于 2014-01-27T09:47:17.157 回答