爲了「抓住」UI滑塊的手柄,必須觸摸它的頂部。我有興趣修改行爲,以便用戶只需觸摸uislider中的任何位置即可。觸摸時,手柄會跳轉到用戶觸摸的任何位置。我怎樣才能做到這一點?UISlider - 選擇何時觸摸拇指
0
A
回答
1
我通過重寫touchesBegan來完成它:withEvent:在UISlider的子類中。您不必檢查觸摸與滑塊的距離有多近,因爲如果滑塊位於滑塊上方,您只會觸摸一個事件。此代碼適用於使用默認的0到1比例設置的滑塊。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
float xPoint = [[[event allTouches]anyObject]locationInView:self].x;
[self setValue:xPoint/self.frame.size.width];
[super touchesBegan:touches withEvent:event];
}
0
關閉我的頭頂我會說你應該留意接觸視圖。當檢測到觸摸時,請檢查它與UISlider
機身的接近程度。如果它是在一定範圍內,做的(僞)
sliderValue = sliderMinValue + (sliderMaxValue-sliderMinValue)/(xCoordOfTouch - sliderLeftSideXCoord)/sliderLength
所以基本上你滑塊應根據用戶觸碰相對於滑塊的幀中計算值。
你提到這很有趣,因爲我在想今天做同樣的事情。如果我找到了一些東西,我會發布它(但不要屏住呼吸)。
0
如果您有最小值或最大值的圖像,rdelmar的回答不起作用。我修改了rdelmar的touchesBegan:withEvent:方法,只在軌道上看到觸及而不在邊緣。
希望這有助於
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
float xPoint = [[touches anyObject] locationInView:self].x;
float trackWidth = [self trackRectForBounds:self.bounds].size.width;
float margin = (self.bounds.size.width - trackWidth)/2;
float xOffset = xPoint - margin;
if (xOffset >= 0.0 && xOffset <= trackWidth) {
float newValue = xOffset/trackWidth;
[self setValue:newValue animated:YES];
[super touchesBegan:touches withEvent:event];
}
}
1
我知道這是一個老問題,但我只是想提一提,我想出了一個不同的方式最近做到這一點。簡而言之:
- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
BOOL ignored = [super beginTrackingWithTouch:touch withEvent:event];
return YES;
}
- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
BOOL ignored = [super continueTrackingWithTouch:touch withEvent:event];
return YES;
}
我認爲這是解決問題的一個更安全的方式,因爲你不必手動生成滑塊的值。你永遠不知道蘋果什麼時候可能會引入整數/制動滑塊等。
相關問題
- 1. 如何觸摸UISlider拇指防止UIScrollView滾動
- 2. UISlider拇指移動而不觸碰拇指
- 3. UISlider iOS的拇指重複
- 4. UISlider自定義拇指
- 5. UISlider拇指停止拖動
- 6. UISlider拇指圖像問題..!
- 7. 如何給UISlider兩個拇指
- 8. 如何獲得UISlider拇指位置
- 9. 如何觸發UISlider的UIControlEventValueChanged而不觸摸iOS中的UISlider?
- 10. UISlider:觸摸忽略軌跡
- 11. SeekBar的拇指只有在觸摸時纔會出現
- 12. UISlider設置拇指清晰的背景
- 13. iphone中的UISlider拇指動畫sdk
- 14. 對齊UISlider拇指圖像 - Objective-C的
- 15. UISlider拇指圖像在滑動時隱藏
- 16. 顯示翻轉邊框,並選擇拇指點擊並取消選擇預先選擇的拇指
- 17. Tizen選擇觸摸事件
- 18. 圖像觸摸選擇區
- 19. iOS:UITableView選擇性觸摸
- 20. 選擇UISlider
- 21. 觸摸內部不與UISlider工作
- 22. 不要傳遞一個UISlider觸摸
- 23. 動畫UISlider上觸摸完成事件
- 24. 使用自定義UISlider - 可可觸摸
- 25. UISlider在右端沒有收到觸摸
- 26. 我如何檢測觸摸在iphone的選擇指標的UIPickerView?
- 27. 如何更改UISlider的繪圖矩形和拇指圖像
- 28. 如何改變UISlider拇指圖像的大小
- 29. 如何在iPhone中刪除UISlider的拇指?
- 30. 如何改變UISlider的拇指圖像的尺寸以編程
夠簡單。謝謝! – morgancodes 2012-08-15 16:27:53