【触摸案例-手势解锁案例-连线到按钮 Objective-C语言】

news2024/12/27 4:11:30

一、接下来,我们接着来说这个,连线的问题啊,

通知

1.连线的问题啊,也就是说,我现在点击一个按钮,

通知

在移动到下一个按钮的时候,在两个按钮中间,在两个按钮都亮起来的时候呢,我们肯定是让它去画一条线的,那么,

1)首先,如果我现在从第一个按钮,连到第二个按钮,那么,这条线,应该从哪儿画到哪儿,对,第一个的中心,连到第二个的中心,就可以了,

也就是说,只要我让它高亮的按钮,每一次,我都让它的中心之间,去进行一条连线,实际上,就可以了,

这是大体的一个思路啊,好,然后呢,那接下来,我们就应该去连线,

2.好,那么,这个时候呢,我们说,连线,你要画线的时候,肯定是需要去写drawRect:的,

通知

这是一定的,

通知

在这个地方,去画线,

// 画线

- (void)drawRect:(CGRect rect){

}

1)那么,首先,我要画线,我要从谁,画到谁,我要从某一个,比如说,我要从第一个按钮,画到第二个按钮,

通知

2)那么,这个按钮,怎么着去取,判断它们的状态?选中的状态,开始画,那就是说,在这个里边,你的意思是说,在这个里边,去for循环一下,

通知

把所有的按钮都遍历一遍,然后,如果是高亮状态的话,就挨个儿去连线,是吗?

通知

这个里边可是有顺序的问题的啊,你想一下,我现在一、二、三、从左往右连线,

通知

应该是在这块儿有一根儿(一、二、之间)、这块儿有一根儿(二、三之间),应该是这个样子的,那如果我现在一、二、再连到这儿,

通知

再连到这儿的话,

通知

那这根儿线啊,应该是,如果我先走这儿,一、二、三、四的话,

通知

那么,这根儿线,应该是这样画的,

通知

那如果照你说,遍历的话,我我现在一走到这儿(第二行第一个),然后去遍历的时候,那第一个按钮,遍历是它,第二个是这儿,那第三个,我就跑到这儿来了,

通知

第四个,就跑到这儿了,

通知

所以,肯定是不能这么干的,那怎么办,它肯定是有顺序的,对,我要再搞一个数组,首先,我要搞数组干什么,我所有的,需要,只要它一高亮,

通知

那就意味着,这个按钮,肯定是需要连线的,所以呢,我不管你在touchesBegan:也好,还是在touchesMoved:也好,只要变成了高亮,

通知

我就给你放到另外一个数组里边,然后,这个时候,肯定是有顺序的吗,因为你高亮起来,肯定都是有顺序的,一、二、三、四,

通知

那么这个时候,我挨个儿的去添加到某一个有序的数组里边去,然后,再遍历这个数组,在每一个btn之间再去连线,就可以了,

二、连线

1.所以呢,我们在外面,还需要再搞一个数组,叫做lineBtns吧,

通知

这个是// 所有需要连线的按钮

通知

好,接下来啊,这个数组有了,有了以后呢,我们需要去初始化一下,然后呢,在这块儿,写一个lineBtns,

通知

if(!_lineBtns){

statements

}

通知

然后,return这个lineBtns,

通知

然后,在这个里边,写一个_lineBtns = [NSMutableArr

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

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

相关文章

WSL2中使用USB串口实验

一、主要参考网站: Connect USB devices | Microsoft Learn 连接 USB 设备 | Microsoft Learn 二、安装usbipd-win WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目 PS C:\Users\issta> winget install --interactive --exact dorssel.usbipd-win …

【网络编程】HTTPS协议详解

引言 HTTPS是HTTP协议的安全版本,通过使用SSL(安全套接层)或TLS(传输层安全)协议加密通信,为数据传输提供了保密性、完整性和身份认证。与传统的HTTP相比,HTTPS能够防止敏感信息被窃取、篡改和…

微信公众号有哪些类型,微信服务号和订阅号有哪些区别

什么是微信公众号? 微信公众号是国内社交媒体平台微信上的公众账号。它们是允许公司发布内容,收集追随者并推广其产品或服务的商业帐户。微信公众号主要有两种类型:订阅账号和服务账号。 微信月活跃用户突破12亿 微信最近达到了平台上的月活…

嵌入式的发展怎么样?

据统计,目前嵌入式人才处于供不应求的状态,对嵌入式工程师的需求达到了全部需求量的 60%至 80%,而且每年还以 20%的速率在增长。因此,学习嵌入式对于大多数人来说,是比较容易找到工作的。 让我再为大家举个例子。近年来…

Pandas进阶

文章目录 第1关:Pandas 分组聚合第2关:Pandas 创建透视表和交叉表 第1关:Pandas 分组聚合 编程要求 使用 Pandas 中的 read_csv() 函数读取 step1/drinks.csv 中的数据,数据的列名如下表所示,请根据 continent 分组并…

ai智能答题助手,这四款软件让知识触手可及!

在数字化时代,知识的获取变得前所未有的便捷。随着人工智能技术的不断发展,AI智能答题助手应运而生,成为了人们学习、工作和生活中的得力助手。今天,就为大家介绍四款备受欢迎的AI智能答题助手软件,让你感受知识的魅力…

Python 进阶(十九):解析命令行参数(argparse 模块)

大家好,我是水滴~~ 当处理命令行参数时,Python 的 argparse 模块是一个强大而灵活的工具。它提供了一个简单且一致的方式来定义命令行参数、选项和子命令,并帮助你解析和验证用户提供的输入。本教程将详细介绍 argparse 模块的使用方法和常见…

5.1 Java全栈开发前端+后端(全栈工程师进阶之路)-服务端框架-MyBatis框架-相信我看这一篇足够

0.软件框架技术简介 软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也 指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。 框架的功能类似于基础设…

环形链表问题详解

引言 环形链表的题大家都应该做过,如果没有做过可以去某扣上做一下 ,下面有传送门 141. 环形链表 - 力扣(LeetCode)https://leetcode.cn/problems/linked-list-cycle/submissions/530160081/ 正文 如果在面试的情况下出现了环形链表的题大…

阿里云VOD视频点播流程(1)

一、开通阿里云VOD 视频点播(ApsaraVideo VoD,简称VOD)是集视频采集、编辑、上传、媒体资源管理、自动化转码处理、视频审核分析、分发加速于一体的一站式音视频点播解决方案。登录阿里云,在产品找到视频点播VOD ,点击…

QT4-升级到QT5(1)

1.C报错汇总_nafxcwd.lib error lnk2001-CSDN博客1 1.QT3Support QWidget::setShown 改为QWidget::setVisible 2.头文件 #include<QWidget> 3.部分函数替换

Neo4j+LLM+RAG 环境配置报错处理

开发KGLLMRAG程序时遇到以下报错&#xff0c;记录下处理方案&#xff1a; ValueError: Could not use APOC procedures. Please ensure the APOC plugin is installed in Neo4j and that ‘apoc.meta.data()’ is allowed in Neo4j configuration 这个参考文章&#xff1a;link…

74从零开始学Java之排序算法中的冒泡和选择排序

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们要想成为一个优秀的程序员,其实非常关键的一点就是要锻炼培养自己的编程思维,就好比一个狙击手,要通过大量的射击训练要用大量的子弹喂出来。同样的…

【解决Android Studio】cmake报错找不到vulkan包

1 报错信息 CMake Error at D:/Android/project/cmake/3.10.2.4988404/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find Vulkan (missing: Vulkan_LIBRARY) Call Stack (most recent call first): 2. 错误原因 minSdk版本不对&am…

为什么创业青年,集体选择抖音小店?是藏在抖音里的财富密码!

哈喽~我是电商月月 为什么创业青年&#xff0c;集体选择抖音小店&#xff1f;因为在这开店不需要自己直播卖货做引流&#xff0c;也不需要自己手里有商品呀 是不是很匪夷所思&#xff0c;别怀疑&#xff0c;给我俩分钟你们绝对不后悔自己的停留&#xff01; 首先就是社会的现…

栈PART 1

目录 1. 栈 1.1 栈的概念和结构 1.2 栈的实现 1.2.1 栈的顺序储存结构 1.2.2 栈的基本操作 1.3 有效的括号 1. 栈 1.1 栈的概念和结构 堆栈又名栈&#xff08;stack&#xff09;&#xff0c;它是一种运算受限的线性表。 限定仅在表尾进行插入和删除操作的线性表。这一端…

3d中如何对模型粉碎处理?---模大狮模型网

在3D建模和动画设计中&#xff0c;模型粉碎处理是一种引人注目的效果&#xff0c;可以为场景增添动态和震撼的视觉效果。无论是用于电影特效、游戏设计还是虚拟现实项目&#xff0c;都可以通过模型粉碎处理来创造出引人入胜的场景。本文将介绍如何在3D中轻松实现模型粉碎处理&a…

FastText 算法原理及使用方法

文章目录 1. 前言2. 模型架构2.1 Hierarchical Softmax2.2 n-gram 特征 3. 训练及评估4. 使用5. 参考 1. 前言 FastText 是一个由 Facebook AI Research 在2016年开源的文本分类器&#xff0c;它的设计旨在保持高分类准确度的同时&#xff0c;显著提升训练和预测的速度。 论文…

Day_3

1. HttpClient HttpClient是Apache的一个子项目&#xff0c;是高效的、功能丰富的支持HTTP协议的客户端编程工具包 作用&#xff1a;发送HTTP请求&#xff0c; 接受相应数据 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>…

森林消防—高扬程水泵:守护绿色屏障的专业利器/恒峰智慧科技

在广袤的森林中&#xff0c;火灾无疑是最具破坏性的灾难之一。为了及时应对森林火灾&#xff0c;保护珍贵的自然资源和生态平衡&#xff0c;高效的消防设备显得尤为重要。森林消防高扬程水泵便是其中一款专业设备&#xff0c;以其高效输送水源的能力&#xff0c;成为守护森林绿…