我在UIToolbar中有一个带有自定义背景/分隔图像的UISegmentedControl。通过iOS 6,这显示正确,但从iOS 7开始,所选片段将该片段的前景图像显示为剪切片(显示下方的工具栏),而不是其他片段显示为的白色。
是否有任何想法,如果只有我缺少的东西让它表现得像预期的那样?
在有人说之前,我不会使用默认的iOS 7 UISegmentedControl外观,因为我发现它很可怕。
答案 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];
}