2015-12-11 121 views
0

我有興趣做一個自定義UIButton,當它按住X秒時觸發一個自定義事件。我希望在按鈕周圍增加一個邊框,因爲它被用來指示它正在做某件事情,當它完成邊框時它會被執行。TouchDown上的自定義UIButton

我的問題是,實現這個最好的方法是什麼?我應該看UIViews還是UIButtons?

我發現這個tutorial series,但它顯示如何繪製按鈕,但不創建自定義事件,您可以定義它們何時被觸發。

我以前在一些應用程序中看到過類似的按鈕,比如SnapChat,我只是想知道它將如何實現。

任何幫助表示讚賞,

乾杯

回答

1

你的UIButton住在一個UIView和按鈕的UIView的子類。當你按下按鈕時,它應該連接到一個IBAction。當IBAction被調用時,你需要啓動一個計時器並開始動畫,在按鈕被按下的同時你需要做任何改變。如果用戶在該定時器完成之前釋放該按鈕,則可能會取消您正在執行的任何操作。如果用戶繼續按住按鈕,您將繼續進行動畫製作。請記住,按下按鈕時調用IBAction的一般方式是在用戶釋放(提起手指)時這樣做。在你的情況下,只要用戶點擊按鈕並在提升之前就立即調用該事件。您還需要跟蹤在計時器運行時用戶的手指是否仍在按鈕內或按鈕外部。如果用戶將手指從按鈕上滑開,您可能會想要使計時器無效並停止任何按鈕動畫。

+0

謝謝你的信息xdeleon!我認爲這將是一些事情,只是不確定是否有更合適的方法來做到這一點。那麼我會將動畫應用於UIButton?我不完全確定我會如何做這個動畫,但只是想確保我的目標是正確的。 –

+0

細分工作是:跟蹤用戶按下按鈕,同時按下按鈕運行計時器。一旦定時器完成觸發適當的動作(即調用某種方法來做某事)。讓這件作品首先進行測試。一旦這個工作正常,那麼你必須添加代碼,在定時器運行時爲按鈕設置動畫。我不確定你的動畫是做什麼的,所以我不能加入。我會谷歌「有生命的烏布頓」。另外,如果您不熟悉某些繪圖代碼的工作原理,請考慮查看PaintCode以更熟悉iOS上的繪圖/動畫。 http://www.paintcodeapp.com/ – xdeleon

+0

非常感謝您爲paintcodeapp.com鏈接。我一定會檢查出來的。我正在尋找一個帶有邊框的圓形UIButton的動畫。完成邊界意味着它已經完成並且會調用一些函數。 –