事件交互与hitTest的的重写
一.事件传递(view)
1. 父控件传递到子控件(顺序)
2. 父控件不能接受事件,它的子控件也不能接受事件(重点)
3. 不能接受事件的三个方式
3.1 hidden = YES(隐藏)
3.2 alpha(0.0~0.01这个范围)
3.3 与用户交互-->userInteractionEnabled = NO的时候不允许用户交互
二. 如何找到最适合的控件来处理事件
1. 判断自己能否接受事件
2. 触控点在不在自己身上
3. 从后往前遍历子控件,然后重复上面的两个步骤,如果没有符合条件的子控件,那么就自己最合适处理
三. hitTest:方法和底层实现 ;pointInside(判断触控点是以当前方法调用者的左上角为顶点的,然后根据X和Y来做出判断)
四. 事件传递的完整过程
五. 怎样判断上一个响应者
六. hitTest的功能----点击弹出对话框
要求功能:点击按钮弹出一个对话框;点击对话框;弹出一张图片;用户拖动按钮可以产生移动的效果
功能图一:
功能图二:
功能图三:
1. 单独封装一个UIButton,移动UIButton的时候系统会默认调用下面代码的方法,这段代码就会实现按钮的移动
2.默认如果子控件超出父控件的大小,默认情况下是不允许交互事件的,但是我们可以通过重写下面系统的代码来实现这功能
3. 然后从storyboard中拖线到控制器中,实现监听方法就可以达到效果了
事件交互与hitTest的的重写相关推荐
- 理解微信小程序Wepy框架的三个事件交互$broadcast,$emit,$invoke
$broadcast: $broadcast事件是由父组件发起,所有子组件都会收到此广播事件,除非事件被手动取消.事件广播的顺序为广度优先搜索顺序,如上图,如果页面Page_Index发起一个$bro ...
- c# 如何抓微信把柄_C#微信公众号开发--微信事件交互
前言 一切准备工作就绪时就先实现一个关注公众号后向客户端推送一条消息.关注后推送消息需要一个get请求.一个post请求,get请求主要是为了向微信服务器验证,post请求主要就是处理微信消息了. 调 ...
- 微信小程序Wepy框架的三个事件交互($broadcast,$emit,$invoke)
$broadcast: broadcast事件是由父组件发起,所有子组件都会收到此广播事件,除非事件被手动取消.事件广播的顺序为广度优先搜索顺序,如上图,如果页面PageIndex发起一个broadc ...
- three.js 事件交互
2019独角兽企业重金招聘Python工程师标准>>> 点击查看交互效果 在three.js中,展示的一切内容都是在canvas中绘制的,所以点击事件点击到物体上是无法获取点击对象的 ...
- Silverlight:使用Storyboard控制动画--控制动画事件交互
说明: 1. Storyboard是一种控制时间播放动画的常用方法. Storyboard 要有Name, 比如clockStoryboard( <Storyboard x:Name=" ...
- swift - xcode10 - 点击事件交互BUG - (手势和button的addTarget方法)
1. 现象 button 点击闪退:没有任何原因 ,在听云检测上,显示 BUG2: 手势 没有任何作用,哪怕设置 isUserInteractionEnabled 和isEnabled 为true ...
- Java版AVG游戏开发入门[0]——游戏模式转换中的事件交互
示例程序下载地址:http://download.csdn.net/source/999273(源码在jar内) AVG,即Adventure Game,可以直译为[冒险游戏].但是通常情况下我们说A ...
- Effective C# 原则35:选择重写函数而不是使用事件句柄(译)
Effective C# 原则35:选择重写函数而不是使用事件句柄 Item 35: Prefer Overrides to Event Handlers 很多.Net类提供了两种不同的方法来控制一些 ...
- Axure的交互事件
Axure的交互事件 Axure的交互事件有很多种,Axure的交互事件可以由图形,图片来进行交互,交互事件不仅可以对针对元件的本身,也可以针对其他的元件进行交互事件 交互样式里面有鼠标悬停,鼠标按下 ...
最新文章
- Javascript中undefined,NaN等特殊比较
- 人群密度估计--Structured Inhomogeneous Density Map Learning for Crowd Counting
- 天气预报都哪儿去了?
- Android studio官网资料
- 暨南大学击败清华,首次夺得ASC世界大学生超算竞赛冠军
- jQuery Validate验证框架详解
- ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
- java有向图邻接表入度_图的实现--邻接表(求出各顶点的出度和入度)
- java子类怎么编译_java – 无法编译从基类实现抽象方法的子类
- BZOJ5419[Noi2018]情报中心——线段树合并+虚树+树形DP
- isapi mysql_Windows 2008R2以ISAPI和Fastcgi方式安装配置IIS、PHP、Mysql环境
- 二叉树的深度优先遍历(DFS)与广度优先遍历(BFS)
- Android抓包方法(三) 之Win7笔记本Wifi热点+WireShark工具
- IDEA 删除本地文件时,SVN服务器上文件无法删除解决办法
- 语法分析:自上而下分析
- 树莓派安装中文拼音输入法和五笔输入法
- Excel单元格自定义数值格式详细测试整理 及 Python用openpyxl设置Excel单元格属性——数值格式
- 第十一届Java B组蓝桥杯真题
- service中间调用dao层方法时,出现Mapper method ‘dao.xxx‘ has an unsupported return type错误,但是sql执行修改数据成功,并没有回滚
- 华为手机android7价格,华为7怎么样?报价多少?
热门文章
- linux 通配符 排除,linux通配符
- win10 磁盘满了 C:\\Users\\user\\AppData\\Local\\Temp C:\Users\user\AppData\Roaming\Lan**
- 手机计算机不支持此操作系统,教你手机操作一键重装电脑系统
- ubuntu编译安装libtool
- 数据压缩学习笔记(四)语音参数编码与随机信号的AR模型参数建模
- 金三银四裁员潮?你工作找到怎么样?
- JDK安装及其环境配置
- C和CPP的区别 C++,Java and Python的区别
- JIRA基本操作了解
- Java Web(J2EE 与EJB)