IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> IOS开发之UI进阶(IOS中的事件、触摸、加速计、远程控制) -> 正文阅读

[移动开发]IOS开发之UI进阶(IOS中的事件、触摸、加速计、远程控制)

IOS中的事件

在这里插入图片描述

响应者对象

继承了UIResponder的对象才能接收并处理事件,我们称之为"响应者对象"
UIApplicationUIViewControllerUIView都是继承自UIResponder,因此他们都是响应者对象,都能接受并处理事件

触摸事件
//手指接触
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
//手指移动
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
//手指离开
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
//非正常离开,取消操作,接电话,意外退出,终止
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;

加速计事件
- (void)motionBegan:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event;
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event;

远程控制事件
 - (void)remoteControlReceivedWithEvent:(nullable UIEvent *)event;
  • NSSet一个无序的ArrayNSSet可以叫做集合,里面放着UITouch,一个就是一个手指
  • UITouch是手指触碰产生的对象,有多个属性,例如点击屏幕持续时间,阶段,快速点击次数,点击的点,上一个点击的点
  • UIView里面有个属性是window,能获取当前的windowUITouch也有

UITouch

  • 常见属性
@property(nonatomic,readonly) NSTimeInterval      timestamp;//点击屏幕持续时间
@property(nonatomic,readonly) UITouchPhase        phase;//阶段
@property(nonatomic,readonly) NSUInteger          tapCount;//快速点击次数

@property(nullable,nonatomic,readonly,strong) UIWindow                        *window;//当前窗口
@property(nullable,nonatomic,readonly,strong) UIView                          *view;//当前View

- (CGPoint)locationInView:(nullable UIView *)view;//点击的点
- (CGPoint)previousLocationInView:(nullable UIView *)view;//上一个点击的点
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event{
	UITouch *touch = touches.anyObject;
	//touch.tapCount
}

多点触控

touches里面都取出来就行了

for(UITouch *touch in touches){

}

检查用户交互开启

  • User Interaction Enabled 记得打开,在StoryBoard文件的属性里面就可以设置
  • 控件隐藏
  • 透明度小于等于0.01
  • 子视图超出父控件的有效范围

hitTest函数 响应者链条

该方法会被系统调用(可重写),在视图的层次结构中寻找到一个最适合的 view(理解为最上层view)来响应触摸事件,如果返回为nil,即事件有可能被丢弃
hitTest会检查每个层的用户交互(上面四个)

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;
  • hitTest 的调用顺序大致如下:
touch(UIEvent)->UIApplication->UIWindow->window.subviews->...->view
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:49:24  更:2021-11-11 12:50:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:52:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码