iOS7与iOS6中的UISlider行为

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

假设你有一个滑块,最小= 0,最大= 10,当前值为0.当你第一次触摸“旋钮”,一个valueChanged消息与slider.value = 0.269发送(而不是期望的0),旋钮移动向中间。 一般情况下,触摸滑块将其移向中间值(本例中为5),距离当前中间越远,移动得越多。

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

苹果还没有评论我的错误报告,但我偶然发现了一个解决scheme:安装旋钮的自定义图像恢复从iOS 6的行为:

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

在iOS 9上,您需要设置.Normal,.Selected和.Highlighted状态才能工作。 经过5个小时的挣扎之后,我发现了这个。 去苹果的路!

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

我testing了它,可以确认描述的行为。

有趣的是,当应用程序使用iOS 6 SDK构build,但设备/模拟器仍然运行iOS 7(在兼容模式下),则不会发生该错误。 所以它似乎与新的外观相联系。

提交一个错误 。