0

我在一个视图中有一个 UISlider,在一个典型的细节视图控制器中。当我触摸滑块的拇指时,我可以很好地将它向左拖动,一旦我将它向左拖动,我可以继续将它拖动到任何我想要的地方,但是当我向右拖动它时,它会移动几个像素然后拖动停止。

我在UISlider 上读到的只是滑动了一小段距离,它可能与手势识别器有关,但我在这个视图中没有任何识别器处于活动状态。我尝试暂时删除任何可能干扰的识别器,但这没有帮助。

我没有任何示例代码要包含,因为在我遇到问题的情况下实际上涉及的代码并不多。我有一个 UIViewController 子类,它上面有一个 UISlider,并且我有一个 IB 为“Value Changed”事件生成的操作。这会触发,正如我所说,我可以向左拖动滑块,但不能向右拖动。

我尝试更改操作,所以它所做的只是 NSLog 滑块的值,但这无济于事。

我预计问题是与我正在开发的应用程序中的其他内容进行了一些交互,但我不确定在哪里看。我正在寻找可能导致这种情况的一些想法。

更新

所以我发现了问题。这是 iOS 5.1 中的一个错误,在iOS 5.1 滑动手势被 UISplitViewController 劫持中描述 - 如何避免?.

我通过枚举所有手势识别器(通过从 self.view.window 遍历视图层次结构并转储它们)然后有选择地删除它们,然后谷歌搜索最终导致问题的那个来跟踪它。屁股疼。把这个留给下一个受害者。

4

3 回答 3

1

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

于 2012-07-07T19:04:18.283 回答
0

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

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

于 2012-07-03T05:34:15.667 回答
0

简短的回答:

尝试将滑块的属性设置continuousNO.

长答案:

我遇到了类似的问题:滑块的拇指不会在 iPad 5.1 模拟器上移动。不过在 iOS 6 上没有问题。就我而言,我在代码中设置滑块minimumValuemaximumValue其他一些值。在我将continuous属性设置为NO. 相关代码片段:

            self.precisionSlider.minimumValue = 0;
            self.precisionSlider.maximumValue = 15;
            self.precisionSlider.continuous = NO;
于 2013-08-09T07:57:24.687 回答