UIButton 事件,有什么区别吗?

我遇到了一个问题,我的按钮应该保持“按下”,而它显示弹出窗口从它调用。Popover 是一些过滤器的选择器,过滤器显示在按钮上。当我点击它的时候,它会显示 Popover 无论如何它都会被取消选择。

我认为我必须重新定义它的触摸事件的行为,使其响应不标准的 touch up inside。然后我想知道还有什么其他事件要负责?但是我在 iOS 库中找不到事件列表,而在 StackOverflow 中只有关于 touch up insidetouch down错误行为的问题。

那么触摸事件之间有什么区别呢?

  1. 触摸取消-当你触摸按钮,但移开你的手指 还是没有被选上吗?
  2. 触地——就在水龙头上。
  3. 着陆,重复?
  4. 触摸拖拽输入? ? ?
  5. 触摸拖拽出口? ?
  6. 触摸拖拽里面? ?
  7. 触摸拖动外面? ?
  8. 触摸内部-当您点击和释放按钮保留在它的 它将 UIButtons 状态更改为 Normal。
  9. 触摸外面-当你点击和释放按钮离开它的 界限?

其他 IBActions 不是由 UIButton 发送的,对吗? 还有这些事件如何改变 UIButton 的外观? 像 highlightedselected

我希望有一个关于 IBActions 的好文章的链接,因为我找不到它。

64268 次浏览

来自 苹果公司的 UIControlEvents文档:

  1. UIControlEventTouchCancel

    取消控件当前触摸的系统事件。

  2. UIControlEventTouchDown

    控件中的触发事件。

  3. UIControlEventTouchDownRepeat

    控件中的重复触摸事件; 对于该事件,UITouch tapCount 方法的值大于1。

  4. UIControlEventTouchDragEnter

    将手指拖入控件边界的事件。

  5. UIControlEventTouchDragExit

    将手指从控件内拖动到其边界外的事件。

  6. UIControlEventTouchDragInside

    将手指拖入控件边界内的事件。

  7. UIControlEventTouchDragOutside

    将手指拖出控件边界的事件。

  8. UIControlEventTouchUpInside

    控件中的触摸事件,其中手指位于控件的边界内。

  9. UIControlEventTouchUpOutside

    控件中的一个触摸事件,其中手指位于控件边界之外。

列出了我认为正常按钮的常用次序/出现的可能性:

UIControlEventTouchDown : 用户点击按钮,触发手指/触笔接触。

UIControlEventTouchUpInside : 用户点击按钮,触发从屏幕上拉开的手指/触控笔联系人。


对滑块和拖动事件(如移动组件)很有用。下面是事件发生的顺序:

UIControlEventTouchDragInside : 当手指拖动到按钮区域时触发。

UIControlEventTouchDragExit : 在拖动过程中触发。它只被调用一次,因为用户的手指/手写笔离开了按钮的边界。

UIControlEventTouchDragOut : 在拖动过程中触发,在“ UIControlEventTouchDragExit”和 被称为连续之后,只要原始触摸继续。

UIControlEventTouchUpOut : 这只是手指/触控笔被抬起,但是只有当手指/触控笔不再在按钮的范围内时才会抬起。重要的是(可能是显而易见的)调用出来的是,触摸必须已经在按钮内部的某一点,以关联这一事件与按钮。

注意: 我的理解是,以上内容可能对以下方面有所帮助:

  1. 滑块: 你可能会认为触摸可能是故意的,但是由于快速的滑动动作,他们的手指运动可能是粗糙的,并提高了外面的滑块区域。
  2. 移动组件,就像当你在屏幕上推动东西时,你希望当手指/触控笔触及组件/对象的边界时发生移动。

其他活动:

UIControlEventTouchCancel : 用户无法控制的事情正在取消他们的触摸操作。你可以把这看作是手机方面的“出问题”。

UIControlEventTouchDown 重复 : 想要检测你的用户什么时候是疯狂的并且疯狂地点击一个按钮吗?想要检测他们是否仍然处于 Windows 模式并试图“双击”?或者你设计了一个按钮,如果他们点击两次,就会做不同的事情。这个活动对所有这些都有帮助!


参考文献:

SO 1 : UIControlEventTouchDragOut 和 UIControlEventTouchDragExit 之间的区别

什么是 UIControlEventTouchCancel?