【触摸案例-多点触摸的案例 Objective-C语言】

一、我们来做这个多点触摸的案例

通知

1.首先呢,按着这个option键啊,可以模拟多点触摸,

通知

然后呢,再去怎么着去画圈儿,

通知

它这个里边就会产生一个imageView,跟着你去变,会有这么一个效果,

那么,首先啊,我们新建一个项目,

Name:03-多点触摸的案例

通知

1)首先,我们把控制器的view,直接变成黑色的,

通知

黑色的完了以后呢,

通知

2)我要在这个黑色的view上面做事情,我要给它绑定一个类,BGView,

通知

New一个File,继承自UIView,叫做BGView,

通知

粘贴一下名称,BGView,

通知

选中这一段儿注释,删掉,

通知

在这个里边写代码啊,

3)首先,当我点击屏幕的时候,它就会出来这么一个imageView,

通知

当我两个手指头点击的时候,它会出来两个imageView,所以我们touchesBegan:一定是要有的,我们先来把touchesBegan:先来写一下,

// 手指触摸这个view的时候调用

- (void)touchesBegan:(NSSet< UITouch * > *)touches withEvent:(UIEvent *)event{

}

通知

4)我们首先要把两个手指头的做出来才行,先让它把两个手指头,做出来,才行啊,怎么着来做,实际上,这个touches,说是一个集合,我们之前做的呢,一直是一个元素,那么,两个手指头,怎么着去做啊,首先,touches里边,放的都是UITouch类型的元素,你有几个元素,就证明你有几个手指头,一块儿点着我了,如果你五个手指头,一块儿点屏幕,touches里边儿,应该有五个元素,这个Set里边儿,应该有五个元素,也就是说,有五个UITouch对象,

有5个UITouch对象,然后,每一个UITouch对象,都可以去获取不同的locationInView,获取不同的位置,

我们这里NSLog一下touches.count,看看里边有多少个元素,

通知

NSLog(@“@ld”,touches.count);

通知

当我一个手指头点击屏幕的时候,输出的是1,

通知

我现在按着option,点,还是1,

不是说有几个手指头点击这个屏幕,touches里边就有几个对象吗,这是这个样子的啊,默认啊,这个View呢,是不支持多点触控的,

在storyboard里边,选中这个view,右边有一个Multiple Touch,勾选上

通知

Multiple Touch:多点触控,

你要把它勾上,然后command + R,这个时候,按住option键,点屏幕,输出的就是2了吧,

通知

这就是2,看到了吧,默认,这个view,是不支持多点触控的,把这个Multiple Touch选项,开一下,就好了,

3)在我们的这个BGView里边儿,当我点击的时候,我要出来一个UIView,

然后,我们说,这个Set里边儿,有两个手指头,所以呢,我待会儿还是要去循环去做,涉及到循环的话,我个人的思路,还是先写一个,然后呢,再去加一个for循环,就可以了,

5.我们现在要做的事情,是我点击屏幕,单个儿手指头啊,它就出来一个ImageView,加上去,这是我要做的事情啊,

通知

1)// 获取触摸对象

通知

UITouch *t = touches.anyObject;

然后呢,接下来,在这个触摸对象的位置上,去添加一个ImageView,然后,让它过几秒钟消失,实际上,就可以了,

2)// 获取手指的位置

我们首先,要去获取手指的位置,才能够添加,没有位置,往哪儿去添加啊,

CGPoint p = [t locationInView:(UIView *)view];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xcode for Mac:强大易用的集成开发环境

Xcode for Mac是一款专为苹果开发者打造的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它集成了代码编辑器、编译器、调试器等一系列开发工具&#xff0c;让开发者能够在同一界面内完成应用的开发、测试和调试工作。 Xcode for Mac v15.2正式版下载 Xcode支持多种编程…

【OpenCV】(一)wechat_qrcode检测二维码

一、注意&#xff1a; opencv-4.8.0之前的版本wechat_qrcode检测二维码是矩形检测&#xff1b; opencv-4.8.0的版本wechat_qrcode检测二维码是关键点检测&#xff1b; 二、C代码 代码目前是通用的&#xff08;仅在opencv-4.5.5、opencv-4.8.1上测试过&#xff09;&#xff1…

ShardingSphere 5.x 系列【25】 数据分片原理之 SQL 解析

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 分片执行流程1.1 Simple Push Down1.2 SQL Federation2. SQL 解析2.1 解析…

力扣700,二叉搜索树中的搜索

700. 二叉搜索树中的搜索 - 力扣&#xff08;LeetCode&#xff09; 法1&#xff0c;递归 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返…

道可云元宇宙每日资讯|苹果推出开放语言模型OpenELM

道可云元宇宙每日简报&#xff08;2024年4月26日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 工信部发布中关村园区建设方案&#xff1a;加快突破元宇宙核心技术 4 月 25 日&#xff0c;工业和信息化部、科学技术部、北京市人民政府印发了《中关村世界领先科技…

分布式WEB应用中会话管理的变迁之路

Session一词直译为“会话”&#xff0c;意指有始有终的一系列动作&#xff0f;消息。Session是Web应用蓬勃发展的产物之一&#xff0c;在Web应用中隐含有“面向连接”和“状态保持”两个含义&#xff0c;同时也指代了Web服务器与客户端之间进行状态保持的解决方案。 在Web应用…

web server apache tomcat11-23-APR

前言 整理这个官方翻译的系列&#xff0c;原因是网上大部分的 tomcat 版本比较旧&#xff0c;此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎&#xff0c;轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

基于JAVA实现的推箱子小游戏

Java推箱子小游戏实现&#xff1a; 推箱子小游戏曾经在我们的童年给我们带来了很多乐趣。推箱子这款游戏现在基本上没人玩了&#xff0c;甚至在新一代人的印象中都已毫无记忆了。。。但是&#xff0c;这款游戏可以在一定程度上锻炼自己的编程能力。 窗口画面设计&#xff1a;i…

8点法估计基础矩阵

估计基础矩阵 文章目录 估计基础矩阵8点法归一化 8点法 8点法 根据两幅图像中8个对应点对之间的关系&#xff0c;采用SVD求 解最小二乘方 约束&#xff1a;det(F) 0 假设已知N对点的对应关系&#xff1a; { x i , x i ′ } i 1 N \{x_i,x^{\prime}_i\}_{i1}^N {xi​,xi′​…

Mysql索引规范及原理分析

1 Mysql存储引擎 MySQL中的数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎。 存储引擎是MySQL将数据存储在文件系统中的存储方…

【打工日常】云原生之部署个人使用的高速下载器Gopeed

​一、Gopeed介绍1.Gopeed简介 Gopeed(全称 Go Speed),直译过来中文名叫做够快下载器(不是狗屁下载器!),是一款由 Golang + Flutter 开发的高速下载器,支持(HTTP、BitTorrent、Magnet)协议下载,并且支持所有平台使用。支持的平台:Windows,Macos,Linux,Android,…

Pytorch 的神经网络 学习笔记

参照官方网址 Module — PyTorch 2.2 documentation 一. 介绍 1. torch.nn模块&#xff1a; torch.nn是PyTorch中专门用于构建神经网络的模块。它提供了构建深度学习模型所需的所有构建块&#xff0c;包括各种层类型&#xff08;如全连接层、卷积层、循环层等&#xff09;、…

SkyWalking 自定义Span并接入告警

图容易被CSDN吞掉&#xff0c;我在掘金也发了&#xff1a;https://juejin.cn/post/7361821913398837248 我就是这么膨胀 最近在做 OpenAI API 套壳&#xff0c;当我使用 okhttp-sse 这个库进行流式内容转发的时候&#xff0c;我发现有些回调方法 SkyWalking 不能抓取到。这就…

在no branch上commmit后,再切换到其他分支,找不到no branch分支的修改怎么办?

解决办法 通过git reflog我们可以查看历史提交记录&#xff0c;这里的第二条提交&#xff08;fbd3ea8&#xff09;就是我在no branch上的提交。 再通过git checkout -b backup fbd3ea8&#xff0c;恢复到上次提交的状态&#xff0c;并且为其创建个分支backup&#xff0c;此时…

跳出框架:Facebook的创新策略与社交影响

1. 引言 在数字化时代&#xff0c;社交媒体如同一面镜子&#xff0c;反映出我们社会的多元性和变革。Facebook&#xff0c;作为这面镜子中最明亮的一个&#xff0c;不仅改变了人们的日常生活&#xff0c;更深刻地塑造了社交、文化和经济的面貌。本文将深入探讨Facebook的创新策…

使用Python的subprocess标准模块Popen()函数打开文件

使用Python的subprocess标准模块Popen()函数打开文件 subprocess模块是Python标准库中用于创建和管理子进程的标准模块。其中Popen()这个函数Python标准模块subprocess中的Popen()函数用处非常广泛&#xff0c;它用于创建新的进程&#xff0c;执行外部命令&#xff0c;并与它们…

java中的泛型(二)——泛型接口以及泛型方法

在上一篇文章中&#xff0c;简要地对泛型的概念以及泛型类的使用进行了说明。除了在泛型类之外&#xff0c;泛型还可以在接口和方法中使用。 泛型接口 对于泛型接口&#xff0c;它的声明方式为: public interface 接口名 <泛型>{泛型定义的抽象方法}。这个声明方式和泛型…

网络安全实训Day15

写在前面 电子垃圾&#xff0c;堂堂恢复连载。本来不想分天数梳理了&#xff0c;但是最后要写实训报告&#xff0c;报告里还要有实训日记记录每日学的东西&#xff0c;干脆发这里留个档&#xff0c;到时候写报告提供一个思路。 网络空间安全实训-渗透测试 渗透测试概述 定义 一…

[Android14] SystemUI的启动

1. 什么是System UI SystemUI是Android系统级应用&#xff0c;负责反馈系统及应用状态并与用户保持大量的交互。业务主要涉及的组成部分包括状态栏(Status Bar)&#xff0c;通知栏(Notification Panel)&#xff0c;锁屏(Keyguard)&#xff0c;控制中心(Quick Setting)&#xff…

北京车展创新纷呈,移远通信网联赋能

时隔四年&#xff0c;备受瞩目的2024&#xff08;第十八届&#xff09;北京国际汽车展览会于4月25日盛大开幕。在这场汽车行业盛会上&#xff0c;各大主流车企竞相炫技&#xff0c;众多全球首发车、概念车、新能源车在这里汇聚&#xff0c;深刻揭示了汽车产业的最新成果和发展潮…