UIButton的点击状态

2024-06-18 22:08
文章标签 状态 点击 uibutton

本文主要是介绍UIButton的点击状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要
* UIControlEventTouchDown * UIControlEventTouchDownRepeat * UIControlEventTouchDragInside * UIControlEventTouchDragOutside * UIControlEventTouchDrag...

UIButton的点击态

UIButton的点击事件状态UIControlEvents主要有如下几种:

  • 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

图片丢失

如上图

UIControlEventTouchDrag* 相关事件

注意:在下面演示过程中,1~4过程中要保持手指一直子啊屏幕上, 不要抬起手指

1.当手指在屏幕 A点 上按下去,就会触发这个事件 UIControlEventTouchDown

2.紧接着,不要松开手指,从 A点 滑动到 B点 ,这段事件内,会不断的触发UIControlEventTouchDragInside 事件

3.紧接着,不要松开手指,从 B点 滑动到 D点 ,这段时间内会触发3个事件:

注意: C点 是UIButton的边界点

从 B点 滑动到 C点 过程中, 会不断的触发 UIControlEventTouchDragInside
当经过 C点 时,会触发一次 UIControlEventTouchDragExit 事件
当从 C点 滑动到 D点 过程中,会不断的触发 UIControlEventTouchDragOutside

4.紧接着,不要松开手指,从 D点 返回,滑动到 B点 ,这段时间内会触发3个事件:

从 D点 滑动到 C点 过程中, 会不断的触发 UIControlEventTouchDragOutside
当经过 C点 时,会触发一次 UIControlEventTouchDragEnter 事件
当从 C点 滑动到 D点 过程中,会不断的触发 UIControlEventTouchDragInside

UIControlEventTouchUpInside

在UIButton上按下手指后,不论你是否拖动手指,或者拖到手指到UIButton外, 只要你最终抬起手指的时刻,你的手指是处在UIButton  ,就会触发此事件

例如,以下操作均会触发此事件:

  1. 在 A点 按下手指后,然后抬起手指,就和平常的单击事件一样;
  2. 在 A点 按下手指后,拖动手指到B点,然后抬起手指;
  3. 在 B点 按下手指后,拖动手指到 D点 ,然后再拖回 B点 ,然后抬起手指

UIControlEventTouchUpOutside

在UIButton上按下手指后,拖动手指,无论你拖动手指进出UIButton多少次, 只要你最终抬起手指的时刻,你的手指是处在UIButton  ,就会触发此事件

例如,以下操作均会触发此事件:

  1. 在 B点 按下手指后,滑动手指到 D点 后,抬起手指;
  2. 在 B点 按下手指后,滑动手指到 D点 -》A点 -》 B点 -》 D点 , 只要最终抬起手指在UIButton外(即 D点 )即可。

UIControlEventTouchCancel

按钮的触摸事件被打断,会触发此事件。

手指在 UIButton 内按钮, 这期间可以任意滑动,但不要抬起手指, 在抬起手指之前触摸事件被打断,就会触发此事件;
例如,在抬起手指前,突然弹出一个UIAlertView时,就会打断按钮的触摸事件

UIControlEventTouchDownRepeat

多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。

这篇关于UIButton的点击状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073184

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

hdu3006状态dp

给你n个集合。集合中均为数字且数字的范围在[1,m]内。m<=14。现在问用这些集合能组成多少个集合自己本身也算。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.Inp

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

状态模式state

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/state 在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 在状态模式中,player.getState()获取的是player的当前状态,通常是一个实现了状态接口的对象。 onPlay()是状态模式中定义的一个方法,不同状态下(例如“正在播放”、“暂停

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

qml states 状态

states 状态 在QML中,states用于定义对象在不同状态下的属性变化。每个状态可以包含一组属性设置,当状态改变时,这些属性设置会被应用到对象上。 import QtQuick 2.15import QtQuick.Controls 2.15// 定义应用程序的主窗口ApplicationWindow {visible: true // 使窗口可见width: 640 /