![](/img/trans.png)
[英]Touch Detection of UIButton added as SubView in UIScrollView
[英]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.