2012-07-03 123 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;