【画板案例-颜色 Objective-C语言】

news2024/11/23 18:26:40

一、接下来,我们来说这个颜色的问题,

通知

1.设置这个颜色啊,那么,颜色,首先啊,就我们的示例程序而言,好,我们现在只要点击这个按钮,

通知

就能够让某一条路径,也是达到不同的颜色,

通知

我们可以让每一条路径,去设置颜色,

那么,这个颜色啊,首先,思路啊,大家先来分析一下,

当我点击这个按钮的时候,

那我下一次去画,应该是我点击的这个按钮的背景颜色,没错儿吧,

我点击红色,那我下一次,就应该画这个按钮的背景颜色,也就是红色,

通知

1)那么,肯定,这三个按钮,我也要去监听,

2)好,监听完了以后,一样的,那我,每一次,去画东西的时候,我到底用什么颜色,应该你监听的时候,告诉我,

3)所以呢,我也是,一样的,需要在HMView.h文件里边,抛出来一个颜色的属性,

通知

需要在“点儿”h,抛出一个Color的属性,

通知

然后呢,你每一次点击,都给这个color的属性,赋不同的颜色,我在这边,只需要去渲染这个颜色,就可以了,

思路大概是跟这个线宽,是一样的啊,

所以呢,我们在这个里边,也需要再去搞一个颜色的属性,

通知

@property(nonatomic,strong)UIColor *lineColor;

通知

然后呢,接下来,我们只需要,在这个点击的时候,来到我们的ViewController,

通知

在我们点击按钮的时候,

通知

去给我HMView的这个lineColor属性,去设置不同的颜色,就可以了,

好,那么这个时候呢,我需要监听三个按钮,所以,我在这里边,来拖线,先拖一个按钮,

通知

Name:lineColorChange,

通知

不用写Green啊,为什么,因为我这三个按钮,可以调用这一个方法,

没问题吧,我要把这三个按钮,都调用这一个方法,

通知

那么这个时候呢,你这三个按钮,自己的这个Button,肯定可以传过来,

通知

把sender的这个id,改成UIButton *,

然后,我只需要让sender,“点儿”,backgroundColor,是不是就能够获取到它的Color,

然后,再去给那边传,就行了,

所以呢,我三个按钮,可以执行一个方法,好,然后呢,第二个按钮,来连个线,

通知

然后呢,第三个按钮,来连个线,

通知

这个方法呢,就是 // 监听颜色的改变

通知

好,那接下来呢,我需要让

self.hmview.lineColor = sender.backgroundColor;

通知

// 设置颜色

self.hmview.lineColor = sender.backgroundColor;

通知

没问题吧,那只要现在这段儿代码,只要我一点击某一个按钮,都会执行,这一句话,执行这一句话,就意味着,

通知

我假如说,点击红色,那就意味着,这个红色的颜色,传给了HMView的lineColor,

也就是说,只要我一点击按钮,那么,HMView.h,这个lineColor,

通知

就是有值的,

二、好,lineColor有值了以后呢,

1.那我就应该想办法,让它去,

通知

设置颜色,

好,我们说,设置颜色,直接调用某一个color的set:就可以了,

通知

那,这句话,我应该写在哪儿,

touchBegan:里边,是吧,

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

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

相关文章

pytest中失败用例重跑

pip install pytest-rerunfailures 下载rerunfailures插件包 配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures2 可以在allure报告中看到重试效果

基于PID的直流电机自动控制系统的设计【MATLAB】

摘 要 本文在广泛查阅资料,了解直流电机特性的基础上,对直流电机的控制原理进行了的研究,设计了一款基于PID控制器的简单直流电机自动控制系统。 首先,分析了直流电机的应用背景和发展现状,对直流电机的工作原理和数学…

Linux系统之smem命令的基本使用

Linux系统之smem命令的基本使用 一、smem命令介绍二、smem命令的使用帮助2.1 smem命令的help帮助信息2.2 smem命令的语法解释 三、smem工具安装3.1 安装epel3.2 搜索smem包3.3 安装smem 四、smem命令的基本使用4.1 查看内存概览4.2 查看内存占用百分比4.3 查看系统内存使用情况…

FANUC机器人4种启动方式的区别

FANUC机器人4种启动方式的区别 1.初始化启动 执行初始化启动时,删除所有程序,所有设定返回标准值。 初始化启动完成时,自动执行控制启动。 说明: 执行初始化启动时,删除所有程序,所有设定返回标准值。初始化启动完成时,自动执行控制启动。执行初始化启动时,程序、设定等…

32+综述!百位大佬联袂解析“One Health”时代下新污染物对全球健康的影响

如果你关注环境健康,那么会发现以上研究发现层出不穷,新污染物正在“潜移默化”悄悄改变我们的个体健康和生存环境! 新污染物是全球经济快速发展的“产物”。例如,微塑料作为一种经常出现的新污染物,可作为载体传播和…

Pikachu靶场--暴力破解

实验前的准备 问题解决 PHPStudy(小皮)V8.1安装后启动Apache报错AH00526: Syntax error 【数据库连接问题】【靶场访问错误】 抓不到本地靶场包的原因及解决方法_pakachu抓不到包 设置代理 BP添加和选择代理 火狐浏览器-->设置-->拓展-->搜索…

臻奶惠的行业优势与市场竞争力解析

臻奶惠在智能售货机领域深耕多年,其加盟合作模式在行业中展现出了多方面的优势。以下是对该公司智能售货机加盟优势的深入分析: 技术先进性: 臻奶惠智能售货机以高度自动化的运营模式著称,特别是在自动补货、远程监控和数据分析…

Git仓库中文件的状态

0 Preface/Foreword 1 文件状态 文件包含以下4个状态: untracked,未跟踪,表示该文件在文件夹中,但是没有加入到git 仓库中进行版本管控。可以通过git add命令将该文件增加到git 仓库中。从untracked变为staged。unmodified&…

夏日炎炎,护牙不闲——口腔问诊小程序开发助你笑口常开

近年来,“口呼吸”、“牙齿矫正”、“美牙贴片”等词越来越多的出现在大众的视野中,口腔健康成为了人们关注的新热点。但是市面上的口腔诊所数量众多又参差不齐,如何选择最合适的口腔诊所是人们面对的新问题。为了有效解决这一现状&#xff0…

Linux命令详解(1)

在Linux操作系统中,命令行界面(CLI)是一个强大的工具,它允许用户通过键入命令来与系统交互。无论是系统管理员还是普通用户,掌握一些基本的Linux命令都是非常重要的。在本文中,我们将探讨一些常用的Linux命…

OCP-042之:Oracle实例管理

2. Oracle实例管理 2.1 Instance管理 Oracle实例(instance)是一组Oracle后台进程和内存结构的集合。 后台进程主要包括SMON,PMON,DBWR,CKPT和LGWR等;内存结构包括数据库高速缓冲区、重做日志缓冲区、共享池、大池等组成系统全局区(SGA)的重要组件。实例主要实现对数据库的…

【论文速读】| 通过大语言模型从协议实现中推断状态机

本次分享论文:Inferring State Machine from the Protocol Implementation via Large Language Model 基本信息 原文作者:Haiyang Wei, Zhengjie Du, Haohui Huang, Yue Liu, Guang Cheng, Linzhang Wang, Bing Mao 作者单位:南京大学&#…

12V转5V3A固定输出电源转换芯片

AH8642A是一款高效的12V转5V固定输出电源转换芯片,适用于车载充电器、适配器以及电池充电器等应用场景。该芯片具有SOP-8封装,使得其具有易于安装和组装的特性,非常适合于生产厂家和消费者使用。 其主要特点包括: 1. 固定输出电压…

【Win】打造个性化的Windows锁屏:从移除小部件到隐藏锁屏

移除锁屏小部件 如果您是Windows 11用户并且安装了最新版本的Windows 11,您可能已经注意到锁屏上的小部件。如果您不希望Windows 11在锁屏上显示小部件,您可以禁用此功能。本文展示了如何在Windows 11中移除锁屏小部件。 要移除Windows 11的锁屏小部件&…

通过自定义线程池初步理解JAVA线程池

减少线程上下文切换 生产者提供的任务对象交给线程池,线程池没有线程的话就创建线程执行它。有线程但是数量不足就放入(任务)阻塞队列。 自定义线程池 组件: 线程池:存储可重用的线程(相当于消费者&#x…

快速上手Selenium:环境搭建详解

一、下载安装python 安装Python是进入编程世界的第一步,下面将详细指导您如何在不同操作系统上安装Python,并确保安装成功后的环境配置。具体分析如下: 下载Python 选择版本:打开Python官网的下载页面,根据需求选择适…

Java 反射的基本概念及其在框架中的应用

Java反射(Reflection)是Java语言中的一种特性,它允许程序在运行时检查和操作类、接口、字段和方法。反射提供了一种机制,使得Java程序可以动态地加载类、创建对象、调用方法、访问和修改字段。反射是Java动态性的重要体现&#xf…

python __init__.py 文件案例练习

通过一些案例练习来更好地理解 __init__.py 的用法。我们将创建一个简单的 Python 包,并在 __init__.py 中实现不同的功能。 案例一:基本包结构 创建包目录结构: mypackage/__init__.pymodule1.pymodule2.py实现 module1.py 和 module2.py: # mypackage/module1.py def fu…

微服务开发与实战Day05 - 服务保护和分布式事务

一、服务保护和分布式事务 二、雪崩问题 微服务调用链路中某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 1. 雪崩问题产生的原因是什么? 微服务相互调用,服务提供者出现故障或阻塞;服务调用者没有做…

OpenGauss数据库-9.模式管理

第1关:创建模式 gsql -d postgres -U gaussdb -W passwd123123; CREATE DATABASE test_db; \c test_db passwd123123 CREATE SCHEMA new_schema AUTHORIZATION gaussdb; CREATE TABLE new_schema.mytable (my_id int, my_info varchar(36)); 第2关:管理…