在iOS 6/7中,我使用UISegmentedControl
背景图像来创建如下效果:
我通过UISegmentedControl
为每个标准状态设置背景图片来完成此操作,如下所示:
UIImage *segmentedControlBackgroundImage = [UIImage imageNamed:@"profileSegmentedControlBackground"];
UIImage *segmentedControlBackgroundSelectedImage = [UIImage imageNamed:@"profileSegmentedControlBackgroundSelected"];
[self.segmentedControl setBackgroundImage:segmentedControlBackgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self.segmentedControl setBackgroundImage:segmentedControlBackgroundImage forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];
[self.segmentedControl setBackgroundImage:segmentedControlBackgroundSelectedImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[self.segmentedControl setBackgroundImage:segmentedControlBackgroundSelectedImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
当一个段变为选中或突出显示时,它下面具有漂亮的蓝色条,并且我设置了文本属性以将文本颜色更改为蓝色。除法器还有一些额外的代码,但是我认为这是无关的,因此我将其省略。
我的问题是,在iOS 8中,有一些动作会导致该段的背景变灰并且看起来很糟糕。一种是当您更改选择时,您点击的单元格将变成灰色,直到过渡完成为止,另一种是,如果您点击并按住一个已选择的段,它将变成灰色。两者看起来相同,可以在下面看到。
一些可能相关的信息:
tintColor
为segmentedControl清晰UISegmentedControl
UISegmentedControl
使用其外观代理的属性UISegmentedControl
并自动确定capInsets并平铺图像该段在选择一个已选择的段时变成灰色的原因是,该段控件缺少同时处于选中状态和突出显示状态。
在您的情况下,请致电:
[self.segmentedControl setBackgroundImage:segmentedControlBackgroundSelectedImage forState:UIControlStateSelected | UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
应该解决这个问题。
当您更改选择时,您点击的单元格将变为灰色,直到过渡完成
我无法重现该问题,但是也许可以解决这两个问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句