iOS7 与 iOS6 中的 UISlider 行为



我注意到iOS7中的UISlider的行为与iOS 6和iOS 5中的不同:

假设您有一个滑块,最小值=0,最大值=10,当前值为0。当您第一次触摸"旋钮"时,会发送一条 slider.value=0.269(而不是预期的 0)的 valueChanged 消息,并且旋钮向中间移动。通常,触摸滑块会将其移动到中间值(在本例中为 5),当前离中间值越远,移动的越多。

所有这些都在iOS6中没有发生,我想恢复旧行为,但不知道如何实现这一点。

Apple尚未对我的错误报告发表评论,但是我或多或少偶然发现了解决方案: 为旋钮安装自定义映像可恢复iOS 6的行为:

[self.slider setThumbImage:[UIImage imageNamed:@"knob"] forState:UIControlStateNormal];

在 iOS 9 上,您需要设置 .正常。已选择和 。突出显示要工作的状态。经过 5 小时的挣扎,我发现了这个。去苹果的路!

[_sliderView setThumbImage:[UIImage imageNamed:@"knob"] forState:UIControlStateNormal];
[_sliderView setThumbImage:[UIImage imageNamed:@"knob"] forState:UIControlStateSelected];
[_sliderView setThumbImage:[UIImage imageNamed:@"knob"] forState:UIControlStateHighlighted];

我测试了它,可以确认所描述的行为。

有趣的是,当应用程序是使用 iOS 6 SDK 构建的,但设备/模拟器仍然运行 iOS 7(在兼容模式下)时,不会发生错误。因此,它似乎与新外观有关。

提交错误。

最新更新