2009-05-29 213 views
1

我有我用下面的觸摸事件作出迴應定製滑塊:iPhone滑塊靈敏度

[bSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; 

我覺得很難用,它並沒有觸摸響應時間大約50%。與音樂播放器的音量滑塊相比,每當您觸摸它時,效果都很棒。是否有任何祕密來創建代碼中的滑塊,使其更具響應性?

回答

0

那麼我嘗試了幾件事情,包括上面的建議,但從來沒有讓我的滑塊工作,以及音樂應用程序中的iPhone音量滑塊。唯一幫助的是在按鈕圖像周圍添加一個清晰的背景,以增大觸摸空間。這就造成了問題,讓按鈕一直滑動到我從未完全解決的滑塊的底部和頂部。現在OS 3.0似乎工作得更好。

1

問題是您正在跟蹤的事件。 UIControlEventTouchUpInside意味着如果在手指仍處於控件邊界時向上擡起手指,則只會調用-start方法,這在滑塊上不容易實現。

你可能想要的是UIControlEventTouchUpOutside和/或UIControlEventTouchDragExit,它將調用-start或者當您鬆開手指控制的範圍之外,或者當你的手指從控制中拖動到其邊界以外的分別。

查看UIControl reference瞭解更多信息。

+0

感謝您的反饋,但我發佈我第一次複製了錯誤的行。我修復了它,並使用UIControlEventValueChanged。 – Aaron 2009-05-29 22:32:57

3

我與我的自定義UISlider有同樣的問題,並通過在外部使用透明度較大的「拇指」圖像來解決此問題。

我也有我的回調函數運行緩慢,造成滑塊是非常laggy和笨拙通過在函數的頂部添加一個簡單的檢查使用,這是我固定的問題:

int val = ceil(sliderView.value); 
if (val == _lastSliderVal) return; 
_lastSliderVal = val; 

// .. code to update various display elements based on slider value 

後改變這兩個,滑塊運作良好。