UISlider拇指停止拖动

时间:2012-07-03 03:41:35

标签: iphone objective-c ios cocoa-touch

我在视图中有一个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搜索最终导致问题的那个来跟踪它。屁股疼。将此留给下一位受害者。

3 个答案:

答案 0 :(得分:1)

我发布了答案作为问题的更新,但简而言之,这是一个iOS 5.1错误。分割视图控制器的平移手势识别器正在干扰滑块。我的解决方法是禁用该识别器。

答案 1 :(得分:0)

您可能正在尝试将滑块的值增加到大于1的值。您需要输入介于0和1之间的浮点数,例如0.46。

查看更新值的代码部分并检查它。

答案 2 :(得分:0)

简短回答:

尝试将滑块的属性continuous设置为NO

答案很长:

我遇到了类似的问题:滑块的拇指不会在iPad 5.1模拟器上移动。虽然iOS 6没有问题。 在我的例子中,我将滑块的minimumValuemaximumValue设置为代码中的其他值。将continuous属性设置为NO后问题就消失了。相关的代码片段:

            self.precisionSlider.minimumValue = 0;
            self.precisionSlider.maximumValue = 15;
            self.precisionSlider.continuous = NO;