iOS7与iOS 6中的UISlider行为

时间:2014-01-03 12:08:27

标签: ios uislider

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

假设你有一个min = 0和max = 10的滑块,当前值为0.当你第一次触摸“knob”时,会发送一个valueChanged消息,其中slider.value = 0.269(而不是预期的0)和旋钮向中间移动。通常,触摸滑块会将其移向中间值(本例中为5),距离当前中间距离越远,移动的越多。

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

3 个答案:

答案 0 :(得分:16)

Apple还没有对我的错误报告发表评论,但我偶然发现了一个或多或少的解决方案:为旋钮安装自定义图像可以恢复iOS 6中的行为:

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

答案 1 :(得分:5)

在iOS 9上,你需要设置.Normal,.Selected和.Highlighted状态才能工作。经过5小时的挣扎,我发现了这一点。走向Apple的路!

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

答案 2 :(得分:2)

我测试了它并且可以确认描述的行为。

有趣的是,当使用iOS 6 SDK构建应用程序但设备/模拟器仍然运行iOS 7(在兼容模式下)时,不会发生错误。所以看起来它与新面貌有关。

File a bug