2012-07-03 90 views
0

我在视图中有一个UISlider,在一个典型的详细视图控制器中。当我触摸滑块的大拇指时,我可以将它拖动到左侧,一旦我将它拖动到左侧,就可以继续拖动它,但是当我向右拖动它时,它会移动几个像素,然后拖动停止。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

你能否提供一个项目(github,dropbox)来演示这种行为? – CodaFi

+0

我从来没有遇到过这样的问题,如果它是一个简单的代码,那么是否有可能在Dropbox中上传项目并共享公共链接或者可能是github。 – doNotCheckMyBlog

+1

@CodaFi,该死的冗余!lol – doNotCheckMyBlog

回答

1

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

0

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

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

+0

我目前没有设置任何值,所以我不认为这会是问题 - 同样,最大默认值为1.0,但我使用了不同的值(在这种情况下为2.0),所以该值不会'吨需要小于1.0。 如果滑块位于范围的中间,我抓住它并向右拖动,它会稍微移动一下然后停止移动;但如果我抓住它并向左拖动,它会正常移动,包括向右拖动。 – stevex

+0

很奇怪。如果您仍然需要帮助,请发布代码。我很高兴看到它。 – bkbeachlabs

0

简短的回答:

尝试设置滑块属性格式continuousNO

龙答:

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

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