Обнаружение касания с помощью UIButton - PullRequest
0 голосов
/ 16 июля 2011

У меня проблема с использованием UIButton action и touchesmoved. Сценарий таков: когда я провожу пальцем по ряду кнопок, нужно вызывать их действия. К кнопке можно также обращаться по отдельности.

Я использовал метод touchesmoved, чтобы определить точки касания на кнопке, чтобы запустить ее действие. Проблема с этим подходом состоит в том, что, когда я нажимаю куда-то в поле зрения и перемещаю палец по кнопке, все работает, но если я начинаю свое прикосновение к самой UIButton, touchesmoved метод не вызывается.

Ответы [ 2 ]

0 голосов
/ 16 июля 2011

Если вам не нужно знать точное местоположение касания, просто когда они проведут по нему, вы можете добавить к нему цель и использовать одно из множества 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;
...