【绘图案例-绘图的方式1 Objective-C语言】

一、接下来,我们来说这个,绘图的方式

1.新建一个项目,Name:04-绘图的方式,

通知

方式:就是,我要同样画一条线,然后,用不同的代码,把它写出来,这就叫方式,

我们在storyboard里边,还拖一个UIView,这些步骤都一样,

通知

我们来一个,宽= 300, 高 = 300 ,

通知

然后,再来一个水平居中、垂直居中,

通知

然后呢,换一个背景颜色,

通知

换一个背景颜色,

通知

然后呢,再去绑定一个类,HMView,

通知

然后,New一个File,HMView,

通知

再把这个注释打开,

通知

好,我们在drawRect:方法里面,

好,这段代码,我之后还要用,所以呢,我把当前的这个项目备份一份儿,然后,后面我们在讲东西的时候,就直接用这份代码了啊,

我们课下做的时候,也是啊,既然想往UIView上面画东西,那你首先要有一个UIView,然后再给它绑定一个类,

然后呢,在这个类里边儿,写一个drawRect:方法,

通知

所有的准备工作,都是这几步啊,我现在要把这份儿代码备份一下,待会儿,我就不再去写了啊,

好,我把它,先关了,然后,把这份儿代码,备份一下,command + C、command + V、备份一份,

通知

把最后这个备份出来的代码,改成“copy”,

通知

再重新打开第四份代码,“04-绘图的方式”,

通知

2.那么,绘图的方式呢,我要在这个里边儿,去写代码,

通知

好,什么叫“方式”,就是我同样画一条线,用不同的代码写出来,

1)第一种方式:是纯C的,实际上,也就是跟刚才我们写的一样啊,

第一步:获取当前绘图上下文(layer),这个上下文,是Layer类型的,在UIView里边儿,在UIView的drawRect里边儿,获取绘图上下文,获取到的类型,实际上,就是layer类型的,

第二步:拼接路径,同时,把路径添加到上下文当中,

第三步:渲染,

好,还是刚才的那几步啊,接下来,我要画一条线,

通知

3.获取当前的绘图上下文(layer)

第一:上下文,是什么类型的,CGContextRef ctx =

通知

怎么着获取图形上下文,还记得吗,UIGraphicGetCurrentContext()

通知

CGContextRef ctx = UIGraphicsGetCurrentContext();

通知

我们把绘图的方式讲完了,告诉大家怎么去找到一个规律啊,

好,然后,接下来,去拼接路径,

4.拼接路径,

CGContextMoveToPoint:(CGContextRef,CGFloat x,CGFloat y)

通知

CGContextMoveToPoint:(ctx,x,y);

通知

CGContextMoveToPoint:(ctx,50,50);

通知

好,然后呢,接下来,CGContextAddLineToPoint:(ctx,x,y);

通知

CGContextAddLineToPoint:(ctx,x,y);

通知

CGContextAddLineToPoint:(ctx,100,100);

通知

5.渲染

CGContextStrokePath:(CGContextRef c)

通知

CGContextStrokePath:(ctx);

通知

CGContextStrokePath:(ctx);

通知

然后,这个,就是我们所说的,第一种方式,

通知

用的是纯C的,代码,然后呢,这种纯C的方式呢,分为三大步:

1)获取当前的绘图上下文

2)拼接路径:往上下文上画东西

3)渲染:照着上下文的东西,放到UIView上面去

这三步,这是第一种方式,在下面先备份一下&#

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zabbix配置

1 下载zabbix 1 配置yum源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release- 5.0-1.el7.noarch.rpm yum clean all yum makecache fast 完成后会出现zabbix.repo文件 2安装zabbix服务 yum -y install zabbix-server-mysql zabbix-web-mysql z…

计算机网络——物理层(信道复用技术)

计算机网络——物理层(信道复用技术) 信道复用技术频分多址与时分多址 频分复用 FDM (Frequency Division Multiplexing)时分复用 TDM (Time Division Multiplexing)统计时分复用 STDM (Statistic TDM)波分复用码分复用 我们今天接着来看信道复用技术&am…

20W-50W厚膜无感电阻TO-220封装技术规格散热说明

EAK为设计工程师提供了一种开放式屏蔽基板器件,用于需要卓越热性能的应用,开发了一种额定功率高达 50W 的厚膜功率电阻器。该电阻器采用 TO-220 开放式屏蔽基板封装,并具有与基板粘合的绝缘锥形文丘里管,以实现最大的散热。 电阻器…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Counter)

计数器组件,提供相应的增加或者减少的计数操作。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 接口 Counter() 从API version 9开始,该接口…

Flask 专题

[CISCN2019 总决赛 Day1 Web3]Flask Message Board 查看session解密 但不知道密钥,题目说FLASK,那肯定就是找密钥,发现输入什么都没有显示,只有author那里有回显在版上,所以尝试sstl,{{config}}找到密钥 扫目录发现有admin进入…

Python数学建模-2.5Pandas库介绍

2.5.1Pandas基本操作 Pandas是一个强大的Python数据分析库,它提供了快速、灵活且富有表现力的数据结构,设计初衷是为了处理关系型或标记型数据。Pandas的基本操作涵盖了数据的读取、处理、筛选、排序、分组、合并以及可视化等多个方面。 以下是一些Pan…

判断闰年(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int year 2000;//执行循环判断&#xff1b;while (year < 2010){//执行流程&#xff1b;//判断能否整除4&#xff1…

配置IPv4静态路由示例

配置IPv4静态路由示例 图1 配置IP静态路由组网图 组网需求配置思路操作步骤配置文件 组网需求 如图1所示&#xff0c;STA1、STA2和PC1属于不同网段&#xff0c;STA1在AP1中上线&#xff0c;STA2在AP2中上线&#xff0c;要求配置静态路由&#xff0c;使PC1与STA1和STA2能够互…

python之万花尺

1、使用模块 import sys, random, argparse import numpy as np import math import turtle import random from PIL import Image from datetime import datetime from math import gcd 依次使用pip下载即可 2、代码 import sys, random, argparse import numpy as np imp…

Yolo系列算法-理论部分-YOLOv4

0. 写在前面 YOLO系列博客&#xff0c;紧接上一篇Yolo系列算法-理论部分-YOLOv3-CSDN博客 1. YOLOv4-实战破局 2020年&#xff0c;YOLO系列的作者发表声明&#xff0c;出于道德方面的考虑&#xff0c;退出CV界&#xff0c;Alexey Bochkovskiy团队接手&#xff0c;正式推出YOLO…

财富池指标公式--通达信主力资金指标公式,主力资金流向怎么看?

今日分享的通达信主力资金指标公式&#xff0c;是一个分析主力资金进出的指标。 具体信号说明&#xff1a; 当紫色的起涨点主力资金线和红色的拉升资金同时上传0线&#xff0c;并且紫色的拉升线超过资金线&#xff0c;大盘进入派发阶段&#xff0c;后市看涨&#xff0c;是参考…

【python】成功解决使用 np.savetxt 出现ValueError: fname must be a string or file handle

【python】成功解决使用 np.savetxt 出现ValueError: fname must be a string or file handle &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入…

vue2点击左侧的树节点(el-tree)定位到对应右侧树形表格(el-table)的位置,树形表格懒加载

左侧树代码 <el-tree :data"treeData" node-key"id" default-expand-all"" //节点默认全部展开:expand-on-click-node"false" //是否在点击节点的时候展开或者收缩节点:props"defaultProps" node-click"handleNodeC…

大数据架构设计

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/136657478 一. 基本概念 1、解决传统数据架构无法及时响应用户请求的常用解决方法&#xff1a; ● 增加异步处理队列&#xff0c;通过工作处理层批量处理异步处理队列中的数据修改请求。 ● 建立数据库…

uni-popup(实现自定义弹窗提示、交互)

一般提示框的样式&#xff0c;一般由设计稿而定&#xff0c;如果用uniapp的showmodel&#xff0c;那个并不能满足我们需要的自定义样式&#xff0c;所以最好的方式是我们自己封装一个&#xff01;&#xff08;想什么样就什么样&#xff09;&#xff01; 一、页面效果 二、使用…

BUUCTF-----[GXYCTF2019]禁止套娃

题目 目录扫描&#xff0c;扫到.git泄露&#xff0c;使用工具查看到index.php的源码 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])){if (!preg_match(/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i,…

独家揭秘:短剧app开发的5大关键技巧

在移动互联网时代&#xff0c;短剧app成为了各大平台竞相推广的热门产品之一。想要在激烈的市场竞争中脱颖而出&#xff0c;短剧app开发必须做到精益求精。作为短剧app开发领域的专家&#xff0c;我将揭秘短剧app开发的5大关键技巧&#xff0c;帮助开发者们在激烈的竞争中立于不…

力扣大厂热门面试算法题 39-41

39. 组合总和&#xff0c;40. 组合总和 II&#xff0c;41. 缺失的第一个正数&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.17 可通过leetcode所有测试用例。 目录 39. 组合总和 解题思路 完整代码 Python Java 40. 组合…

前端应用开发实验:Vue的特性

目录 实验目的实验内容图片浏览功能代码实现效果 简单购物车功能代码实现效果 汇率换算功能代码实现效果 关于需要准备的内容&#xff0c;如Vue的下载就不多赘述了 实验目的 &#xff08;1&#xff09;掌握vue实例编写的语法和基本选项的使用 &#xff08;2&#xff09;在实际…

深度学习pytorch——Broadcast自动扩展

介绍 在 PyTorch 中&#xff0c;Broadcast 是指自动扩展&#xff08;broadcasting&#xff09;运算的功能。它允许用户在不同形状的张量之间执行运算&#xff0c;而无需手动将它们的形状改变为相同的大小。当进行运算时&#xff0c;PyTorch 会自动调整张量的形状&#xff0c;使…