2011-02-06 41 views
0

我通過for循環動態創建了許多uibutton,並將它們添加到場景中。現在我想爲每個uibutton添加拖放功能。我怎樣才能做到這一點?拖放程序生成的UIButtons

說一個像破碎機的遊戲,你有一個槳。它是唯一被玩家拖拽的對象,所以我們需要做的是爲paddle添加一個uibutton對象,並在touchesBegan和touchesMoved中更新它的中心。

在我的問題,我不知道哪個按鈕將被點擊。如果我將一個動作附加到所有按鈕上以跟蹤哪個按鈕被點擊,那麼當玩家第一次點擊按鈕時,我將無法執行DRAG。也許有更好的方法。

回答

0

糾正我,如果我不明白,但每個按鈕應該「知道」,如果它是一個被點擊。在touchesMoved:withEvent:方法中,難道你不能只將中心設置爲觸摸的位置,還是有什麼我失蹤?

試試這個。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    if (self.highlighted) { 
     UITouch *touch = [touches anyObject]; 
     self.center = CGPointMake(touch.x, touch.y); 
    } 
} 

當然,這段代碼有一些問題,例如不能很好地處理多個觸摸,但我希望它能夠得到重點。 如果您只是想知道當前點擊了哪個按鈕,則可以使用UIControl的highlighted屬性。希望有所幫助!

+0

我不知道每個按鈕應該知道它是否被點擊。可以請你寫代碼來完成這個?謝謝。 – Huy 2011-02-06 00:44:43