簡體   English   中英

使用 UIButton 進行觸摸檢測

[英]Touch detection with UIButton

我在使用UIButton動作和touchesmoved時遇到問題。 場景是,當我將手指拖過一系列按鈕時,應該調用它的動作。我也可以單獨觸摸按鈕。

我使用touchesmoved方法找出uibutton上的接觸點來觸發它的動作。 這種方法的問題是,當我點擊視圖中的某個位置並將手指移到按鈕上時,一切正常,但是如果我開始觸摸 UIButton 本身,則不會調用touchesmoved方法。

如果您不需要知道觸摸的確切位置,就在他們滑過它時,您可以向它添加一個目標並使用許多 UIControlEvents 之一,例如 UIControlEventTouchDragInside 等。

這是直接來自UIControl.h的完整枚舉

enum {
    UIControlEventTouchDown           = 1 <<  0,      // on all touch downs
    UIControlEventTouchDownRepeat     = 1 <<  1,      // on multiple touchdowns (tap count > 1)
    UIControlEventTouchDragInside     = 1 <<  2,
    UIControlEventTouchDragOutside    = 1 <<  3,
    UIControlEventTouchDragEnter      = 1 <<  4,
    UIControlEventTouchDragExit       = 1 <<  5,
    UIControlEventTouchUpInside       = 1 <<  6,
    UIControlEventTouchUpOutside      = 1 <<  7,
    UIControlEventTouchCancel         = 1 <<  8,

    UIControlEventValueChanged        = 1 << 12,     // sliders, etc.

    UIControlEventEditingDidBegin     = 1 << 16,     // UITextField
    UIControlEventEditingChanged      = 1 << 17,
    UIControlEventEditingDidEnd       = 1 << 18,
    UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing

    UIControlEventAllTouchEvents      = 0x00000FFF,  // for touch events
    UIControlEventAllEditingEvents    = 0x000F0000,  // for UITextField
    UIControlEventApplicationReserved = 0x0F000000,  // range available for application use
    UIControlEventSystemReserved      = 0xF0000000,  // range reserved for internal framework use
    UIControlEventAllEvents           = 0xFFFFFFFF
};
typedef NSUInteger UIControlEvents;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM