我注意到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(在兼容模式下)时,不会发生错误。因此,它似乎与新外观有关。
提交错误。