【画板案例-线宽 Objective-C语言】

2024-06-07 15:44

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

一、接下来,我们来说这个,线宽,

通知

1.示例程序里边,这个slider,是改变线宽的,在最左边的时候,我画一下,

通知

是这种线宽,还是有一定宽度的啊,跟我们这个默认的,不是1像素,

然后,最右边呢,也是有一个宽度的,

通知

然后呢,这个线宽,我就给它,最小值设置成5,最大值设置成30,

来到我的storyboard里,选中这个slider,最小值改成5,最大值改成30,回车,

通知

接下来,我来设置这个线宽,我们改变,拖动这个slider的时候,

通知

它的线宽,也会发生改变,这是第一,所以,我们slider,一定是要监听的,

一定要去监听它,到底滑动的是5,还是滑动的是30,

那接下来呢,我们现在想要在画线的时候,设置线宽,我应该给谁设置,给这个路径去设置,我们说,path里边,有一个叫做setLineWidth:的一个东西,

好,也就是说啊,我每一次,拿到最新的,每一次slider去监听的时候,

通知

然后呢,我应该把最新的值,赋给HMView的某一个属性,然后呢,你每一次设置线宽的时候,直接设置那个属性,是不是应该就可以了,

我们说,self.path里边,有一个叫做setLineWidth:的一个东西,我每一次拿到最新的,我每一次slider去监听的时候,然后呢,我应该把最新的值,赋给HMView的某一个属性,然后呢,你每一次设置线宽的时候,直接设置那个属性,就可以了,

通知

所以我们现在知道啊,我们想要去设置路径,我们要给path去设置,

通知

在我们HMView.h里边,我们抛出来一个属性,

到时候呢,只要slider一改变,5啊,又变到30了,你就把这个属性,给我赋最新的值,

每一次,当我touchBegan:去画线的时候,我就把你最新的这个值,拿过来,设置成线宽,应该就可以了,

通知

2.所以呢,我们在这个HMView“点儿”h里面,我们先来一个,assign啊,

通知

@property(nonatomic,assign)CGFloat lineWidth;

通知

3.好,然后呢,接下来啊,我们在这个ViewController里边,

还要监听它,监听完了以后,在这儿设置啊,

好,我们先来监听,

监听这一块儿,我们直接通过storyboard,把它拖过来,就可以了,

通知

按住control键,把slider,拖到ViewController的实现里边,就可以了,

实现的方法,实际上,就是监听,

好,监听的这个方法,我们来一个lineWidthChange:

通知

Name:lineWidthChange

// 监听线宽改变

- (IBAction)lineWidthChange:(id)sender{

}

通知

好,然后呢,这个id,就是UISlider *

通知

然后,我们会通过sender.value,去拿过来,

去拿过来,你当前设置slider的这个数值,

我只需要把它变成线宽,就可以了,

怎么变成线宽,直接给HMView的这个属性,赋值,就可以了,

4.所以呢,我们现在需要拿到的是HMView,

通知

这一块儿灰色的,也要拿到啊,没有这个对象,我怎么给这个对象赋值,

所以,来一个这个,叫做,hmview,啊,

这篇关于【画板案例-线宽 Objective-C语言】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La