2012-07-09 75 views
51

我遇到了一個問題,我的按鈕應該保持「按下」狀態,同時顯示從它調用的彈出窗口。彈出窗口是一些過濾器的選擇器,過濾器顯示在按鈕本身上。當我點擊它時,它會顯示彈出窗口,無論如何它都會被取消選擇。UIButton事件。有什麼不同?

我想我必須重新定義它在觸摸事件上的行爲,並使其響應而不是標準touch up inside。然後我想知道其他事件是由什麼負責的?但是我無法在iOS庫中找到事件列表,並且在StackOverflow中只有關於touch up insidetouch down的錯誤行爲的問題。

那麼touch事件有什麼區別呢?

  1. 觸摸取消 - 當你觸摸按鈕,但移開你的手指, 它仍然被取消選擇?
  2. 落下 - 右擊。
  3. 觸摸重複?
  4. 觸摸拖動輸入??
  5. 觸摸拖出口??
  6. 觸摸拖動裏面?
  7. touch drag outside?
  8. 觸摸裏面 - 當你點擊並釋放按鈕保持在它的 界限。它將UIButtons狀態更改爲Normal。
  9. 觸摸外面 - 當你點擊並釋放按鈕離開它的 邊界?

其他IBActions不是由UIButton發送的,對嗎? 這些事件又如何改變UIButton的外觀?像highlightedselected

我會很感激關於IBActions的好文章的鏈接,因爲我找不到它。

+6

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Control_Events – janusbalatbat 2012-07-09 06:23:57

+0

@janusfidel非常感謝你很多,它完全回答了我的問題:) – Protheus 2012-07-09 06:30:50

回答

126

ios library來自:

  1. UIControlEventTouchCancel

    一種系統事件取消所述控制的當前觸摸。

  2. UIControlEventTouchDown

    在控制的觸摸按下事件。

  3. UIControlEventTouchDownRepeat

    甲重複在控制接觸按下事件;對於此事件,UITouch tapCount方法的值大於1。

  4. UIControlEventTouchDragEnter

    其中手指拖入控件的邊界的事件。

  5. UIControlEventTouchDragExit

    其中手指從一個控制內拖動到其邊界之外的事件。

  6. UIControlEventTouchDragInside

    其中手指拖動控制的範圍內的事件。

  7. UIControlEventTouchDragOutside

    其中手指拖動剛好控制的範圍以外的事件。

  8. UIControlEventTouchUpInside

    在手指是控制的邊界內的控制的觸摸向上事件。

  9. UIControlEventTouchUpOutside

    在手指是控制的邊界之外的控制的觸摸向上事件。

+3

因此,只是爲了澄清,通過「修補」事件,這意味着手指被刪除,對吧?因爲這可能意味着許多不同的東西(例如輕微向上滑動,或者向上滑動並移除手指,或者它可能與詞的實際含義奇怪地相關[touch-up](http://www.merriam-webster。 COM /詞典/觸摸式))。 – 2015-04-02 03:44:34

+1

@ParthianShot當用戶將他的手指從屏幕上移開時,是的。 – Protheus 2015-04-06 13:59:44

+0

這聽起來像'DragEnter'和'DragInside'非常相似? – Crashalot 2015-08-28 17:36:28