2
A
回答
1
子類的UISlider
並覆蓋其touchesBegan:withEvent:
方法。從touch事件中獲取點值,並通過相對於滑塊寬度的點的.x值計算它的百分比。
2
這樣做,你需要繼承UISlider
和實施,如觸摸事件:的touchesBegan,touchesEnd,touchesCancelled,touchesMoved等
@interface yourSlider:UISlider
@end
@implementation yourSlider
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
}
@end
+0
嘿。感謝大家的迴應..我嘗試了子類,但發現它稍長一些,雖然有用,方法。我所做的是我在兩側用相等的透明區域(等於未使用軌道的長度)製作更大的拇指圖像。這擴大了觸摸面積並解決了我的問題。 –
+0
@SahilTyagi:感謝您的評論:) –
1
答案是正確的,但有一種變通方法在這裏,你可以簡單地添加一個清晰的按鈕等於滑塊上的滑塊座標並檢測其上的觸點,然後將X位置轉換爲滑塊值。
- (IBAction)buttonPressed:(id)sender forEvent:(UIEvent*)event
{
UIView *button = (UIView *)sender;
UITouch *touch = [[event touchesForView:button] anyObject];
CGPoint location = [touch locationInView:button];
NSLog(@"Location in button: %f, %f", location.x, location.y); \\ use this x to determine slider's value
}
0
另一個解決方法:
UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sliderTapped:)];
gr.delegate=self;
[Slider addGestureRecognizer:gr];
-(void)sliderTapped:(UIGestureRecognizer*)g{
UISlider* s = (UISlider*)g.view;
if (s.highlighted)
return;
CGPoint pt = [g locationInView: s];
CGFloat value = s.minimumValue + pt.x/s.bounds.size.width * (s.maximumValue - s.minimumValue);
[s setValue:value animated:YES];
}
相關問題
- 1. Jquery UI滑塊事件
- 2. 滑動時獲取jquery-UI滑塊值
- 3. 滑軌安裝jQuery UI的
- 4. 檢測JQuery UI滑塊事件鍵碼
- 5. jquery UI滑塊來處理事件
- 6. 事件最大的滑塊jQuery UI的
- 7. jQuery UI滑塊停止事件傳播
- 8. 在單擊事件(滑動滑塊)上滑動滑塊
- 9. 從jQuery-ui滑塊中獲取值
- 10. 獲取在軌
- 11. 禁用jQuery UI滑塊上的單擊或mousedown事件
- 12. 滑軌HAS_ONE條件
- 13. 如何在SuperView上獲取touchesBegan事件
- 14. 在ASP.NET Application_End事件上獲取域名
- 15. 在imageview上獲取touch事件coordonate
- 16. 在火鳥上獲取觸發事件
- 17. 在gridview上獲取兩個click事件
- 18. 在buttonclick上獲取JTextField的值事件
- 19. 如何在OpenLayers.Map上獲取mousedown事件?
- 20. 在滑軌
- 21. 自舉滑軌滑軌導軌
- 22. jQuery UI的滑塊:從功能與滑事件
- 23. Kendo UI Grid取消事件
- 24. 在jQuery中獲取並顯示當前滑塊值的事件?
- 25. 如何在滑塊操作事件之前獲取滑塊的值?
- 26. 在滑塊上發佈事件?
- 27. Windows上的滑軌黃瓜
- 28. 獲取catcomplete在軌
- 29. 獲取會話數據在軌道上
- 30. 在軌道上獲取參數路線
請你讓我們知道您的Slider軌道意味着什麼呢?你想要滑塊或其他東西的事件? –
滑塊移動的軌道。滑塊有兩部分的拇指和曲目。我正在尋找一個事件,而不是在拇指上點擊賽道。 –
我不認爲你可以直接獲取這些事件,除非你繼承了UISlider類或創建了類似於UISlider的控制器。 –