【绘图案例-自定义进度条 Objective-C语言】

一、好,我们接着来说这个自定义进度条

通知

1.这个Slider啊,简单的这个value属性,介绍完了,以后,监听也可以监听的到了,接下来,我们来做这个自定义进度条啊,

那么,首先啊,我是这么想的,在这个slider的最小值、和、最大值、我给它改成0、到、1、

通知

因为如果这样的话,到时候,我画里边的那个圆的时候,我只需要让2倍的派,乘上这个数字,就可以了,因为在中间的时候,肯定是0.5,嘛

那我2倍的派,乘上0.5,也就整好是一半吗,

所以,我在这一块儿啊,直接写个0、到、1、

当然,你可以自己随便去写,你要写成0、到、100、也可以,

然后,这样的话,你中间那个Label,显示进度的时候,做起来也就方便了,都是一样的啊,你写多少都行,然后,这是一个啊,我在这儿,直接写成0到1了,我觉得这样最方便,

然后呢,接下来,我们在这个里边,去画圆,画弧,

2.首先,在我们的HMView里边,我们要画一个弧的话,

通知

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(150, 150) radius:100 startAngle:0 endAngle:2 * M_PI clockwise:1];

[path fill];

通知

// 填充

然后呢,我现在如果,到时候这个值,到时候,我拖动slider啊,我slider在哪儿,是在Controller里边的一个控件,我肯定是要通过Controller,拿到这个值啊,

通知

传给那个View,到时候,一定是要传给那个View的,然后呢,那个View,拿到的那个数字,应该是从0到1的取值范围,

通知

是我slider滑动的这个范围,从0到1,

所以呢,我在这个里边,可以先来试验一下,

就是说,你在自己写程序,也是一样啊,不一定就是一定就是一套写好,先去试一试,跟你想的效果一样了,再去往后做啊,

我在这个里边,直接乘上一个0.5,

通知

就是到时候可能啊,传过来的数,如果,是一个半圆,说明我这块儿,应该是没什么太大的问题,到时候,我直接把这个0.5改成传过来的数字,就可以了,好,command + R,看一下是不是一个半圆啊,

通知

好,确实是一个半圆,但是,这个里边呢,我觉得,好像跟我们示例程序不太一样,示例程序的起点,是从12点钟方向开始的,所以呢,如果我这里就算是乘以0.5的话,我应该把它从12点钟方向,画到6点钟方向,那么这个时候,我这块儿应该稍微改一改吧,好,起点应该改成什么,

0 - M_PI_2

通知

那,终点呢,直接在后边减去 M_PI_2吗,还是减完再乘,还是乘完再减,直接在后边减,是吧,

通知

看一下,

通知

好,这个里边儿啊,实际上,写程序,不要想的太复杂了,想起来什么,你觉得那样做对,你就去写一遍,跑一遍,对了就对了,不对了再去改,不要太去纠结于怎么着去计算,浪费脑细胞啊,实际上,这个里边啊,我们说,我在这块儿,故意写成了0 - M_PI_2,实际上,就是,你不减后边这个数字,你是从3点钟方向,到6点钟方向,你现在想让它位置,整体相当于偏移了90度一样,那你就在两边,都减去一个M_PI_2,

通知

就完了,没有那么复杂,不要去考虑什么,先减再乘,还是先乘再减

3.然后,接下来,我需要做的,就是把这个0.5改了,

通知

假如说,有一天,我传过来的是一个1,

通知

它应该是一个完整的圆,就对了,

通知

然后呢,假如说,我想改成多少,我可以先试一下,改成0.25,

通知

那就是一个这个样子的,

通知

这个样子的效果,发现不太对了,怎么办,这个是不是不是扇形,扇形应该怎么着,去做,对,去往圆心连线,

// 往圆心连线

[path addLineToPoint:CGPointMake(150, 150)];

通知

command + R,

通知

这个时候,就对了,你可以先去试验试验啊,

发现问题了,改问题,然后,再去往后做,接下来,我现在,应该是没啥问题了,

只要把0.25这个数字,

通知

变成传过来的数据,就可以了,

4.那么,所以呢,首先啊,我现在呢,在ViewController里边,我希望把这个,

通知

sender.value,传给这个HMView,那么,首先,我要有HMView的这个对象,所以呢,我应该storyboard,拖根儿线吧,我应该storyboard,把这个蓝色的View,拖到interface里吧,

通知

我应该把这个蓝色的View,拖到这个interface上吧,

通知

不能alloc,init,吧,

能alloc,init吗,不能吧,因为你要alloc,init,是一个新的对象了,对吧,这个里边啊,这个里边儿,实际上,之前,好像

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

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

相关文章

安装 使用 ida pro linux

安装 ida pro linux 下载地址 下载解压文件,然后linux下直接双击安装 ida7.5demo*******.run这个安装包 然后查找安装目录,一般桌面图标都有对应执行程序的路径 将crack包中的内容覆盖到这个安装目录中 然后双击执行就可以正常运行,new 打…

安装 allure 时踩到的坑:ERROR: JAVA_HOME is set to an invalid directory

报错内容是: 安装 allure 时ERROR: JAVA_HOME is set to an invalid directory: F:\soft\jdk Please set the JAVA_HOME variable in your environment to match the location of your Java installation。 这个问题的原因是java环境的环境变量不能运行 也就是在cm…

5步到位,苹果手机铃声设置原来这么简单!

苹果手机铃声设置是个人化手机体验的重要部分,通过设置喜爱的铃声可以让手机更加个性化,也更容易识别来电。然而,对于一些新手来说,可能不太清楚如何在苹果手机上进行铃声设置,或者可能不知道如何将自己喜欢的音乐或声…

基于云计算的前端资源管理系统的设计与实现

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 随着互联网的快速发展,前端资源管理成为了一个重要的课题。本文旨在设计并实…

【正点原子FreeRTOS学习笔记】————(14)事件标志组

这里写目录标题 一、事件标志组简介(了解)二、事件标志组相关API函数介绍(熟悉)三、事件标志组实验(掌握) 一、事件标志组简介(了解) 事件标志位:用一个位,来…

旺店通·旗舰奇门和金蝶云星空单据接口对接

旺店通旗舰奇门和金蝶云星空单据接口对接 来源系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”,旨在帮助企业打造面…

外包干了15天,技术退步明显。。。。。。

说一下自己的情况,本科生,19年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

【Java程序设计】【C00391】基于(JavaWeb)Springboot的校园疫情防控信息管理系统(有论文)

基于(JavaWeb)Springboot的校园疫情防控信息管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发&#xff…

[实战]Springboot与GB28181摄像头对接。摄像头注册上线(一)

与支持国标摄像头对接 前言:不想看教程?1、准备阶段1.1、我们会学到什么?1.2、创建项目1.3、pom中用到的依赖1.4 打开摄像头的网址(了解配置方式) 2、代码编写2.1、增加项目配置2.2、在config目录下创建SipConfig2.3、在service目录下创建Sip…

Go通道机制与应用详解

目录 一、概述二、Go通道基础通道(Channel)简介创建和初始化通道通道与协程(Goroutine)的关联nil通道的特性 三、通道类型与操作通道类型1. 无缓冲通道 (Unbuffered Channels)2. 有缓冲通道 (Buffered Channels) 通道操作1. 发送操…

【技巧】PyTorch限制GPU显存的可使用上限

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 从 PyTorch 1.4 版本开始,引入了一个新的功能 torch.cuda.set_per_process_memory_fraction(fraction, device),这个功能允许用户为特定的 GPU 设备设置进程可使用的显存上限比例。 测试代…

验证码demo(简单实现)

前言 我们注意到我们登录网站的时候经常会用到网络验证码,今天我们就简单实现一个验证码的前后端交互问题,做一个小demo 准备 我们这里并不需要依靠原生的java来实现,而是只需要引入一个maven依赖,使用现成的封装好的即可,这是我使用的是hutool工具包 网址:Hutool🍬…

【前端学习——js篇】6.事件模型

具体见:https://github.com/febobo/web-interview 6.事件模型 ①事件与事件流 事件(Events) 事件是指页面中发生的交互行为,比如用户点击按钮、键盘输入、鼠标移动等。在js中,可以通过事件来触发相应的操作,例如执行函数、改变…

dump文件分析OOM及线程堆栈

OutOfMemoryError (OOM) 如果项目报错: OutOfMemoryError: Java heap space,说明堆内存空间(Heap Space)中没有足够的空间来分配对象了。 一旦发生 OOM,系统有可能不可用,或者频繁重启。属于非常严重的问题…

基于springboot实现校园管理系统项目【项目源码+论文说明】

基于springboot实现校园管理系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,校园管理系统当然也不能排除在外。校园管理系统是以实际运用为开发背景&#xff0c…

修改 RabbitMQ 默认超时时间

MQ客户端正常运行,突然就报连接错误, 错误信息写的很明确,是客户端连接超时。 不过很疑虑,为什么会出现连接超时呢?代码没动过,网络也ok,也设置了心跳和重连机制。 最终在官网中找到了答案&am…

windows-MySQL5.7安装

1.安装包下载 https://downloads.mysql.com/archives/community/(社区版下载链接) 选择Archives可以下载历史包,此处使用5.7.43 2.解压文件 解压文件到你指定安装的目录:解压完成后在mysql-5.7.43-winx64下新建文件my.ini和d…

企业引入“四力平衡”理念,激励员工工作积极性

—— 如何激励业务人员的工作积极性?【所属行业】生产制造业【问题类型】业务人员绩效考核【客户背景】J公司成立于1985年,目前主要从事机床、工具及相关产品的进出口贸易和国内营销业务,自1990年以来,一直属于全国最大的500家外贸…

如何备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

有家长朋友问,有没有适合初中学生参加的奥数类比赛?我推荐AMC10美国数学竞赛,在国内可以方便地参加,而且每年全国各省市参加的初中生越来越多。关于AMC10详细的介绍和常见问题解答,可以联系我获得。 那么如何在AMC10竞…

正大国际:黄金投资稳定与保值的避险之选

黄金作为备受投资者追捧的贵金属,在金融市场中扮演着重要的角色。黄金作为一种避险资产具有稳定性和保值特性,能够在市场动荡时提供投资者的资金保护, 正大召煮4/26/12 xiaoccsw 避险需求:当股票市场、货币市场或其他资产类别表现不佳时&a…