繁体   English   中英

iOS7与iOS6中的UISlider行为

[英]UISlider behaviour in iOS7 versus iOS6

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

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

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

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

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

在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];

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

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

提交错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM