我有一個滑塊,其值在0到100之間。我可以在模擬器中輕鬆停止任意數量的滑動,但在我的設備上,滑塊會變得有點跳動,並且可能會移動一個或兩個刻度釋放你的手指。我想讓我的滑塊像iPod中的多速擦洗器一樣工作,但是我找不到UISlider的「預包裝版本」。一旦我已經抓住了滑塊的拇指,我似乎無法捕捉到我的觸摸的y座標。或者這可能是一個敏感問題。任何幫助將非常感激。 感謝爲iPhone編程變速滑塊
回答
我會寫我自己的UISlider子類,並實現所有觸控操作自己(即則hitTest:withEvent:,return [self pointInside:point withEvent:event] ? self : nil;
,使用UISlider只是做渲染(你可以得到相關的最小/最大rects通過調用thumbRectForValue:或任何它被稱爲)
我不知道你的意思是「我似乎無法捕捉我的觸摸的y座標」,但它不是(很容易)可以訪問一次觸摸事件子視圖已經「捕獲」了它,一個破解是自己處理所有的觸摸,然後向前觸摸開始/移動/結束/取消。
如果我明白了你的意思,笨拙地隨着觸摸的相對y位置以可變速度移動。我沒有使用洗地控制器。
的UISlider控制從UIResponder繼承,所以你可以繼承它並添加自己的
– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
touchesMoved將是特別感興趣的,因爲它會給你y座標。不要忘了致電super
並將事件傳遞給響應者鏈。
如果你還沒有收到任何事件 - 也許拇指在前面並且正在攔截它們。在滑塊上放置一個常規的透明UIView子類,截取觸摸並獲取座標,並再次傳遞事件。在滑塊的動作功能
int progressAsInt = ((int)((completionSlider.value + 2.5f)/5.0f) * 5);
[sender setValue:progressAsInt animated:YES];
做出UISlider只設置了拇指離散值,就像制動器音量控制:
我用這個代碼一次。您可以使用由檢測到的觸摸的y位置決定的不同值,以改變您允許的粒度,或者影響實際觸摸事件表示的移動量。
感謝您的洞察力,讓我走在正確的方向。 – 2010-08-17 17:08:21
- 1. 加速Nivo滑塊
- 2. 照片滑塊Iphone
- 3. IPhone範圍滑塊
- 4. iphone滑塊示例
- 5. iPhone編程:加速度計
- 6. 爲iPhone創建自定義滑塊
- 7. jquery滑塊開始加速
- 8. 以編程方式停止滑塊的自動滑塊
- 9. iPhone滑塊靈敏度
- 10. 子視圖滑塊,iphone
- 11. 編程變化滑塊值和更新標籤
- 12. jquery循環滑塊 - 快速點擊打破滑塊
- 13. 快速滑出菜單,無需滑動導航欄(編程)
- 14. AngularJS編輯進度條爲html滑塊
- 15. 滑塊控件行爲變化
- 16. Iphone-Web,jQuery:如何讓網頁上的滑塊滑動,因爲用戶在滑塊上滑動手指?
- 17. iphone音頻速度控制編程
- 18. 快速繪製應用程序 - 基於滑塊改變線寬值
- 19. 使用編程語言的圖像滑塊稱爲處理
- 20. jQuery滑塊教程?
- 21. 在哪裏調整滑塊速度
- 22. 更改懸停Css滑塊的速度
- 23. 從w3school編輯滑塊
- 24. bxslider滑塊變化計數
- 25. 模糊滑塊變化UIImage
- 26. 可變滑塊整數值
- 27. 與NG-變化Angularjs滑塊
- 28. jQuery可變寬度滑塊
- 29. Android圖像滑塊變焦
- 30. 使用滑塊改變AVAudioPlayer體積在iPhone SDK的
感謝您指點我在正確的方向.. – 2010-08-17 17:06:42