我有一個touchesBegan方法設置爲在用戶觸摸屏幕時拾取座標。除了當我觸及一個UIButton時,它的效果很好。我怎樣才能讓按鈕觸發touchesBegan方法呢?當UIButton被觸發時,你如何獲得touchesBegan座標?
22
A
回答
50
事件處理程序添加到按鈕,類似於以下,
[myButton addTarget:self action:@selector(dragBegan:withEvent:) forControlEvents: UIControlEventTouchDown];
[myButton addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents: UIControlEventTouchDragInside];
[myButton addTarget:self action:@selector(dragEnded:withEvent:) forControlEvents: UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
處理事件,如下,您可以從事件EV如下,獲得觸摸點
- (void)dragBegan:(UIControl *)c withEvent:ev {
NSLog(@"dragBegan......");
UITouch *touch = [[ev allTouches] anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
NSLog(@"Touch x : %f y : %f", touchPoint.x, touchPoint.y);
}
- (void)dragMoving:(UIControl *)c withEvent:ev {
NSLog(@"dragMoving......");
}
- (void)dragEnded:(UIControl *)c withEvent:ev {
NSLog(@"dragEnded......");
}
這不是我自己的答案。我從http://sree.cc/iphone/handling-touche-events-for-uibuttons-in-iphone得到了這段代碼,並做了一些小改動。
0
嘗試覆蓋UIButton類和touchesBegan方法調用[super touchesBegan ..]。
相關問題
- 1. 的touchesBegan不會被觸發
- 2. uibutton touchesBegan
- 3. 如何獲得它被按下時UIButton的標題
- 4. 當圖像被觸摸時顯示UIButton?
- 5. 如何獲得座標?
- 6. 當我們執行ACTION_MOVE時如何獲得座標
- 7. 如何在使用GoogleMaps v2時獲得當前座標?
- 8. UIButton not firing touchesbegan
- 9. 如何在UIButton中觸發目標?
- 10. 如何從超級視圖中訪問UIButton的當前座標,發生時UIGestureRecognizerStateEnd
- 11. 的touchesBegan犯規獲得被檢測
- 12. 當你也有onTouchListener時,你如何觸發onClickTextListener?
- 13. 如何加速touchesBegan事件觸發?
- 14. 如何獲得多個觸摸按鈕來處理touchesBegan/Moved?
- 15. 如何獲得PanResponder相對於父視圖的當前觸摸座標?
- 16. 如何獲得當前光標座標的JavaScript
- 17. Touchesbegan使用touchesmoved時總是會觸發?
- 18. UIButton Touch Up Inside TouchesBegan
- 19. 如何將UIButton設置爲觸摸座標
- 20. 如何獲得屏幕觸摸的x,y座標?
- 21. 如何獲得觸摸從ValueChanged事件斯威夫特座標
- 22. 如何獲得觸摸座標事件位圖不是屏幕
- 23. 我如何獲得PHONEGAP(科爾多瓦)的觸摸座標?
- 24. 我如何從UIGesture獲得多點觸摸的多個座標
- 25. C#:當鼠標左鍵/右鍵被按下時,我如何獲得鼠標的座標?
- 26. GMSMapView touchesbegan只觸發一次
- 27. 當鼠標點擊觸發時,如何停止mouse_out觸發
- 28. 當你滾動時觸發jQuery效果
- 29. 你如何獲得下一個div來觸發Scroll Follow?
- 30. 獲取UIButton的x和y座標
這工作得很好!非常感謝!! – 2010-12-22 06:38:15