iOS画圆、画线

iOS纯代码画圆形图 一个简单的demo,传入相应的数值就可以了,半封装形式 立即下载

iOS画圆、画线

UIView:

 

- (void)drawRect:(CGRect)rect {
    [super drawRect:rect];
    
    CGRect frame = CGRectMake(50, 100, 100, 100);
    /*画填充圆
     */
    CGContextRef context = UIGraphicsGetCurrentContext();
    [[UIColor whiteColor] set];
    CGContextFillRect(context, rect);
    
    CGContextAddEllipseInRect(context, frame);
    [[UIColor orangeColor] set];
    CGContextFillPath(context);
    
    /*边框圆
     */
    CGContextSetRGBStrokeColor(context, 255/255.0, 106/255.0, 0/255.0, 1);
    CGContextSetLineWidth(context, 5);
    CGContextAddArc(context, 50, 70, 20, 0, 2*M_PI, 0);
    CGContextDrawPath(context, kCGPathStroke);

    /*画直线
     */
    CGRect markFrame = CGRectMake(100, 250, 200, 200);
    [[UIColor orangeColor] set];
    CGContextSetLineWidth(context, 4);
    CGPoint points[5];
    points[0] = CGPointMake(markFrame.origin.x,markFrame.origin.y);
    points[1] = CGPointMake(markFrame.origin.x+markFrame.size.width/4, markFrame.origin.y+markFrame.size.height/2);
    points[2] = CGPointMake(markFrame.origin.x+markFrame.size.width/2, markFrame.origin.y+5);
    points[3] = CGPointMake(markFrame.origin.x+markFrame.size.width/4*3,markFrame.origin.y+markFrame.size.height/2);
    points[4] = CGPointMake(markFrame.origin.x+markFrame.size.width, markFrame.origin.y);
    
    CGContextAddLines(context, points, 5);
    CGContextDrawPath(context, kCGPathStroke);
    //边框圆
    CGContextSetLineWidth(context, 5);
    CGContextAddArc(context, markFrame.origin.x+markFrame.size.width/2, markFrame.origin.y+markFrame.size.height/2, markFrame.size.height/2-2, 0, 2*M_PI, 0);
    CGContextDrawPath(context, kCGPathStroke);
    
    /*曲线
     */
    [[UIColor redColor] set];
    
    CGContextSetLineWidth(context, 4.0);
    CGContextSetStrokeColorWithColor(context, [UIColor orangeColor].CGColor);
    CGContextMoveToPoint(context, 300, 370);
    CGContextAddCurveToPoint(context,  193, 320, 100, 370, 100, 370);
    CGContextStrokePath(context);
}

 

 

UIViewController:

 

#import "DrawViewController.h"

@interface DrawViewController ()

@end

@implementation DrawViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    /*
     *画虚线圆
     */
    CAShapeLayer *dotteLine =  [CAShapeLayer layer];
    CGMutablePathRef dottePath =  CGPathCreateMutable();
    dotteLine.lineWidth = 2.0f ;
    dotteLine.strokeColor = [UIColor orangeColor].CGColor;
    dotteLine.fillColor = [UIColor clearColor].CGColor;
    CGPathAddEllipseInRect(dottePath, nil, CGRectMake(50.0f,  50.0f, 200.0f, 200.0f));
    dotteLine.path = dottePath;
    NSArray *arr = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:10],[NSNumber numberWithInt:5], nil];
    dotteLine.lineDashPhase = 1.0;
    dotteLine.lineDashPattern = arr;
    CGPathRelease(dottePath);
    [self.view.layer addSublayer:dotteLine];
    
    /*
     *画实线圆
     */
    CAShapeLayer *solidLine =  [CAShapeLayer layer];
    CGMutablePathRef solidPath =  CGPathCreateMutable();
    solidLine.lineWidth = 2.0f ;
    solidLine.strokeColor = [UIColor orangeColor].CGColor;
    solidLine.fillColor = [UIColor clearColor].CGColor;
    CGPathAddEllipseInRect(solidPath, nil, CGRectMake(50.0f,  300.0f, 200.0f, 200.0f));
    solidLine.path = solidPath;
    CGPathRelease(solidPath);
    [self.view.layer addSublayer:solidLine];
    
    /*
     *画虚线
     */
    CAShapeLayer *dotteShapeLayer = [CAShapeLayer layer];
    CGMutablePathRef dotteShapePath =  CGPathCreateMutable();
    [dotteShapeLayer setFillColor:[[UIColor clearColor] CGColor]];
    [dotteShapeLayer setStrokeColor:[[UIColor orangeColor] CGColor]];
    dotteShapeLayer.lineWidth = 2.0f ;
    NSArray *dotteShapeArr = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:10],[NSNumber numberWithInt:5], nil];
    [dotteShapeLayer setLineDashPattern:dotteShapeArr];
    CGPathMoveToPoint(dotteShapePath, NULL, 20,500);
    CGPathAddLineToPoint(dotteShapePath, NULL, 20, 285);
    CGPathAddLineToPoint(dotteShapePath, NULL, 300,285);
    [dotteShapeLayer setPath:dotteShapePath];
    CGPathRelease(dotteShapePath);
    [self.view.layer addSublayer:dotteShapeLayer];
    
    /*
     *画实线
     */
    CAShapeLayer *solidShapeLayer = [CAShapeLayer layer];
    CGMutablePathRef solidShapePath =  CGPathCreateMutable();
    [solidShapeLayer setFillColor:[[UIColor clearColor] CGColor]];
    [solidShapeLayer setStrokeColor:[[UIColor orangeColor] CGColor]];
    solidShapeLayer.lineWidth = 2.0f ;
    CGPathMoveToPoint(solidShapePath, NULL, 20, 265);
    CGPathAddLineToPoint(solidShapePath, NULL, 300,265);
    CGPathAddLineToPoint(solidShapePath, NULL, 300,50);
    [solidShapeLayer setPath:solidShapePath];
    CGPathRelease(solidShapePath);
    [self.view.layer addSublayer:solidShapeLayer];
    
    
}


 

 

 

示图:

 

ios-绘制圆和圆上的点.zip 动画绘制对应的圆和圆上的点,并且通过动画执行线段,这个版本的动画执行睡眠质量会掉帧,过几天会换一种写法,重新更新代码,目前这个只是提供一种思路,有问题 联系我! 立即下载

相关推荐

Ansys HFSS 中的同轴电缆仿真

准确模拟它们的行为对于确保 RF 系统的最佳性能至关重要。在本博客中,我们将介绍在 HFSS 中设置同轴电缆仿真并绘制插入损耗、回波损耗和电场分布的过程。将波端口分配给同轴线的两端以激励模型,并定义了从 1 GHz 到 20 GHz 的频率扫描以评估其宽带性能。铜分配给内部导体,铝分配给外部导体。介电区域使用 PTFE 定义,其相对介电常数为 2.1,损耗角正切为 0.00022。仿真完成后,结果用于绘制整个频率范围内的回波损耗和插入损耗。此外,电介质内的电场分布也被绘制和动画化。

jkh920184196的博客 1907

[IOS]画线/画圆

IOS开发——画线/画圆 Demo:http://download.youkuaiyun.com/detail/u012881779/8638287 效果: UIView: - (void)drawRect:(CGRect)rect { [super drawRect:rect]; CGRect frame = CGRectMake(50, 100, 100, 1

Gamin 2677

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解(Python/JS/C/C++)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释发现新题目,随时更新。

学Java,找哪吒 5万+

iOS开发-绘制圆圈circle

iOS开发-绘制圆圈circle

qq_43441647的博客 858

19、CATIA V5:参数化建模与零件目录创建全解析

本文详细解析了在CATIA V5中通过设计表实现参数化建模及零件目录创建的完整流程。以支撑块和钩形夹为例,介绍了参数识别、设计表创建与关联、配置管理以及零件目录的构建方法。同时,提供了实际操作建议和注意事项,帮助设计师高效创建和管理零件族,提升设计效率和质量。

raspberrypi5的博客 447

基于STM32设计的校园智慧路灯系统(华为云IOT)(212)

当前设计并研发了基于STM32的智慧路灯系统,本系统的目的是打造一个高效节能、智能化管理的校园照明环境。通过集成STM32F103RCT6高性能微控制器为核心,结合多种传感器模块如BH1750光敏传感器、热释电人体感应模块以及中科微电子GPS模块等,实现了对校园路灯的精准控制与实时监控。

5137

iOS如何绘制圆

前两天在项目开发中涉及到绘制圆形的需求,在这里记录一下两种绘制圆的方法。 一、在- (void)drawRect:(CGRect)rect方法中使用Context进行绘制 CGContextRef context = UIGraphicsGetCurrentContext(); //得到图形上下文 CGContextSetFillColorWithColor(context

feizhu422的专栏 1305

从零开始跑通3DGS教程:(五)3DGS训练

本文介绍了在Docker环境中训练3DGS(3D Gaussian Splatting)的方法,属于《从零开始跑通3DGS教程》系列文章的第五部分。主要内容包括:Docker环境准备(基于pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime镜像)、容器内conda环境配置(安装必要依赖和3DGS相关组件)、以及训练命令执行步骤。文章提供了详细的命令行操作流程,帮助读者快速搭建3DGS训练环境。适合在Linux系统、Nvidia GPU环境下使用,完整教程可参考系列文章

诺有缸的高飞鸟的博客 1753

iOS 画圆图片的几种方法

方法一: self.cycleImv= [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 50, 50)]; [self.view addSubview:self.cycleImv]; // 为图片切圆 self.cycleImv.layer.masksToBounds = YES; self.cycleImv...

baikan6930的博客 347

最全教程cadence建立个人CIS数据库

此时如果你删除office365,再装Access数据库,可以安装上,然后你再装office365,系统又会把Access软件给你删除掉,因为冲突了。可以在自己的电脑上新建CIS库,主要包含下面几个内容:数据库文件,原理图封装,PCB封装,数据手册,另外建议做一个器件命名的说明。allegro在调用封装的时候,是看的.psm文件,而不是.dra文件,因此只要是c0402.psm,那么所有的内容都要保持一致。(1)文件夹不要有中文,不要有空格,否则无法识别,可以参考博主的方式,全部使用英文输入法下划线。

D_Katter的博客 249

Oracle EBS R12.2.X JSP部署、编译和配置相关操作。

系统环境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 背景 在某项目上,需要开发JSP相关程序,比如单点登陆、打印二维条码。当前把JSP部署编译以后,访问提示错误:Requested resource or page is not allowed in this site, 通过查SR发现Oracle EBS R12.2.X版本对客制化JSP进行权限控限,需要设置某些配置文件。 实例操作步骤 上传JSP文件 通常上传到$OA_HTML目录或其子目

陈显平的专栏-Oracle EBS 1911

IOS开发-画曲线画弧线画圆

(1)导入QuartzCore框架 (2)自定义一个view,然后输入下面的代码:- (void)drawRect:(CGRect)rect { [self drawArc1]; }/** * 曲线 */ - (void)drawArc1 { //获取上下文 CGContextRef context = UIGraphicsGetCurrentContext();

嘿嘿嘿 1万+

ESP32-C3蓝牙透传通信的BLE协议栈工程实践

蓝牙低功耗(BLE)透传是一种基于GATT服务模型的数据透明传输机制,其核心原理在于Peripheral设备通过广播建立连接,并在GATT Server层暴露可读写特征值实现双向数据通道。该技术具备低功耗、跨平台兼容性强、开发门槛适中等优势,广泛应用于智能硬件、工业传感器与嵌入式网关等场景。在实际工程中,透传稳定性高度依赖BLE协议栈的分层协同——Link Layer负责可靠连接建立,GATT Server则定义数据交互语义;而ESP32-C3的AT指令集正是对这两层能力的封装调度。本文聚焦BLE透传的关键

weixin_29859471的博客 123

ios 画线平滑_iOS画圆、画线

UIView:- (void)drawRect:(CGRect)rect {[super drawRect:rect];CGRect frame = CGRectMake(50, 100, 100, 100);/*画填充圆*/CGContextRef context = UIGraphicsGetCurrentContext();[[UIColor whiteColor] set];CGConte...

weixin_28931449的博客 224

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形

首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. 自己学习时实现的demo,希望对大家有帮助,具体的实现看

AAJUNWANG的博客 1086

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)

原创:http://blog.youkuaiyun.com/rhljiayou/article/details/9919713 首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上

oik_ios的专栏 1382

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ios绘图基础

ios绘图基础 ios绘图才一些场合很好用,这里演示一些基本的方法。 -1 ios绘图基础 -2 ios常见的图形绘制 - 画线 - 画圆、圆弧 - 画矩形,画椭圆,多边形 - 画图片 - 画文字 画出来的草图: 代码下载:github库,对应此文章的目录是draw 点击跳转代码下载地址 1:ios绘图基础 几个基本的概念

li_yangyang_li的博客 819

ios 基本图形的绘制

ios 基本图形的绘制  2014-05-14 16:48 8130人阅读 评论(1) 收藏 举报  分类: ios(19)  版权声明:本文为博主原创文章,未经博主允许不得转载。 转自:http://www.maxiaoguo.com/clothes/252.html 基本图形的绘制 包括: 代码画线,画文字 图片 裁剪 重绘  简

Lu_Ca的博客 703

iOS海哥开发笔记 (海哥原创,Quartz-2d的简单使用 一)

-.基本使用,画线断,首先要自定义一个view,重写 - (void)drawRect:(CGRect)rect方法,然后就可以肆意的话了   1.画线断,每一句代码都给注释了哦,     // 1.开启图形上下文     CGContextRef ctx = UIGraphicsGetCurrentContext();     //  起始点     CGCo

horisea的博客 1076

IOS 绘制基本图形( 画圆、画线、画圆弧、绘制三角形、绘制四边形)

// 当自定义view第一次显示出来的时候就会调用drawRect方法- (void)drawRect:(CGRect)rect { // 1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 画圆 CGContextAddArc(ctx, 100, 100, 50, 0, 2 *...

weixin_30408165的博客 412

小画板

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34326429的博客 87

iOS 简单的使用UIBezierPath绘制

UIBezierPath这个类呢主要用于绘图。  之前的项目中需要绘图的部分都是用Core Graphics来绘制,OC是我的第一门语言,所以对于Core Graphics的C语言API不太适应,最近发现原来苹果的UIKit中已经对Core Graphics做了一些简单的封装,UIBezierPath就是其中一个。UIBezierPath已经完全满足了我对绘图的一些基本要求。 UIBezi

iOS 技术支持 1083
上一篇: UITabBarController保存上次选中的selectedIndex
下一篇: 解决使用了estimatedHeight导致的tableView reloadData乱跳
csdndimo
博客等级 码龄13年 0粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值