2011-03-04 22 views
0

我有一個iPad應用程序,我正在開發一個用戶單擊按鈕時生成一個隨機數,並且它出現在按鈕上的標籤上,因此用戶認爲該值位於按鈕上。用戶可以再次點擊該按鈕以獲得另一個隨機數,如果他們想要的話。將值拖動到標籤上

有沒有一種方法可以讓我讓用戶從一個源(比如說一個標籤)拖動一個數字到另一個標籤 - 這樣用戶不必多次單擊該按鈕才能獲得數字他們想要的,他們可以簡單地將它從「菜單」拖到標籤上。

任何幫助,將不勝感激

感謝

Baruugh

回答

0

可以使用UITextField,使用戶可以自己輸入一個值。爲什麼你想要做一些複雜的輸入值。

編輯:如果你希望用戶輸入的不是您可以爲使用UIMenuController

http://developer.apple.com/library/ios/documentation/iPhone/Reference/UIMenuController_Class/UIMenuController.html同一副本選項標籤顯示的值。

+0

在回答你的問題羅賓時,我希望用戶能夠生成/輸入一個數字,而不必讓鍵盤吊起來並每次接管一半的屏幕。 如果有一種方法讓用戶在沒有發生這種情況的情況下輸入他們的選擇數量,我一定會熱衷於聽到它。 再次感謝 Baruugh – Baruugh 2011-03-04 05:16:12

0

您需要自己處理觸摸事件。子類UILabel並覆蓋其方法touches...

首先,您將更新touchesMoved:withEvent:方法中標籤的位置。在這種方法中,您對超級視圖中的觸摸位置感興趣,而不是標籤本身,因此請執行諸如[[touches anyObject] locationInView:self.superview]之類的操作。

而在touchesEnded:withEvent:方法中,您將使用按鈕檢查標籤的位置,如果它重疊,則將值傳遞給按鈕。這可以通過很多方式實現,但IMO的最佳做法是制定委託模式。讓管理superview的視圖控制器成爲自定義UILabel對象的委託。在touchesEnded:withEvent:方法中向代理髮送消息,並讓視圖控制器處理位置檢查以及按鈕文本更新。