2011-02-25 139 views
3

對於iPad模擬器3.2當前正在開發的iPad應用程序,UIView上有四個UIButton。拖拽UIButtons

目前發生的情況是:用戶將他們的手指從一個按鈕拖動到另一個按鈕。當手指離開第一個按鈕時,該按鈕保持其活動狀態,並且除非用戶釋放觸摸並再次按下第二個按鈕,否則手指通過第二個按鈕時不會發生任何事情。

我需要發生的是,當他們的手指離開第一個UIButton的區域時,它應該回到它的默認UI狀態,並且當手指進入第二個UIButton的區域時,第二個按鈕應該假設它的活動狀態,並且發起一個事件。

我真的完全失去了如何做到這一點,我做了大量的谷歌搜索,沒有提供快速解決方案,看起來像我應該很容易完成的東西。

在此先感謝。

回答

1

研究修改按鈕的動作以使用one of the many different control events available。也就是說,這聽起來像您需要註冊按鈕以在UIControlEventTouchDragEnter和/或UIControlEventTouchDragExit上執行操作。

+0

我已經在使用這些了,主要問題是當手指離開按鈕(TouchDragExit)時,它不再觸發TouchDragEnters對於它傳遞過來的其他按鈕,它只會在手指返回到初始按鈕時觸發。從後臺UIView拖動到按鈕時,TouchDragEnter也不會觸發。 – Debashis 2011-02-25 22:47:51

+1

它確實聽起來很毛茸茸的工作正確。也許你會更好地手動跟蹤觸摸事件?您能夠非常簡潔地描述所需操作的邏輯和條件。跟蹤觸摸狀態(當觸摸向下/向上並進入/退出區域時)可能同樣簡單,但可能不一定容易,並找出適當的操作。 – SomeRandomGuy 2011-02-25 23:00:41

1

你可能不想在這裏使用UIButtons。相反,創建自己的視圖,並自己動手處理。您可以輕鬆跟蹤自定義視圖內任何視圖的X和Y位置,並做出相應響應。

UIButtons只是不是爲這種用途而設計的。