我在视图中有一个UISlider,在典型的详细视图控制器中。当我触摸滑块的拇指时,我可以将它向左拖动,一旦我向左拖动它,我可以继续拖动它到任何我想要的地方,但是当我向右拖动时,它会移动几个像素,然后拖动停止。
我在UISlider only slide a small distance读到它可能与手势识别器有关,但我在此视图中没有任何识别器。我试过暂时删除任何可能会干扰的识别器,但这没有帮助。
我没有要包含的示例代码,因为在我遇到问题的情况下涉及的代码实际上并不多。我有一个UIViewController子类,上面有一个UISlider,我有一个IB生成的“Value Changed”事件动作。这会激发,正如我所说,我可以向左拖动滑块,但不是正确的。
我尝试更改动作,所以它只是NSLog滑块的值,这没有帮助。
我希望问题是我正在处理的应用程序中的某些其他内容的交互,但我不确定在哪里查看。我正在寻找一些可能导致这种情况的想法。
更新
所以我发现了问题。这是iOS 5.1中的一个错误,在iOS 5.1 swipe gesture hijacked by UISplitViewController - how to avoid?中有描述。
我通过枚举所有手势识别器(通过从self.view.window走向视图层次结构并转储它们)然后有选择地删除它们然后用Google搜索最终导致问题的那个来跟踪它。屁股疼。将此留给下一位受害者。
答案 0 :(得分:1)
我发布了答案作为问题的更新,但简而言之,这是一个iOS 5.1错误。分割视图控制器的平移手势识别器正在干扰滑块。我的解决方法是禁用该识别器。
答案 1 :(得分:0)
您可能正在尝试将滑块的值增加到大于1的值。您需要输入介于0和1之间的浮点数,例如0.46。
查看更新值的代码部分并检查它。
答案 2 :(得分:0)
简短回答:
尝试将滑块的属性continuous
设置为NO
。
答案很长:
我遇到了类似的问题:滑块的拇指不会在iPad 5.1模拟器上移动。虽然iOS 6没有问题。
在我的例子中,我将滑块的minimumValue
和maximumValue
设置为代码中的其他值。将continuous
属性设置为NO
后问题就消失了。相关的代码片段:
self.precisionSlider.minimumValue = 0;
self.precisionSlider.maximumValue = 15;
self.precisionSlider.continuous = NO;