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

2024-05-08 17:04

本文主要是介绍【触摸案例-手势解锁案例-连线到按钮 Objective-C语言】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

通知

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

通知

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

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

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

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

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

通知

这是一定的,

通知

在这个地方,去画线,

// 画线

- (void)drawRect:(CGRect rect){

}

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

通知

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

通知

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

通知

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

通知

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

通知

再连到这儿的话,

通知

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

通知

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

通知

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

通知

第四个,就跑到这儿了,

通知

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

通知

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

通知

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

通知

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

二、连线

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

通知

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

通知

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

通知

if(!_lineBtns){

statements

}

通知

然后,return这个lineBtns,

通知

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

这篇关于【触摸案例-手势解锁案例-连线到按钮 Objective-C语言】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3