iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >iOS开发CGContextRef画图使用总结
  • 844
分享到

iOS开发CGContextRef画图使用总结

2024-04-02 19:04:59 844人浏览 安东尼
摘要

本文实例为大家汇总了iOS开发CGContextRef画图使用,供大家参考,具体内容如下 1.创建画布 CGContextRef ctx = UIGraphicsGetCurrent

本文实例为大家汇总了iOS开发CGContextRef画图使用,供大家参考,具体内容如下

1.创建画布

CGContextRef ctx = UIGraphicsGetCurrentContext();

2.设置属性

//旋转,注意:设置操作必须要在添加图形之前,如果设置在添加图形之后的话,此时它已经画完了,无效
//旋转的时候,是整个layer都旋转了
//旋转45度
CGContextRotateCTM(ctx, M_PI_4);
//缩放:x方向缩放0.5倍,y方向缩放1.5倍
CGContextScaleCTM(ctx, 0.5, 1.5);
//平移:x方向移动50,y方向移动100
CGContextTranslateCTM(ctx, 50, 100);
CGContextSetLineJoin(ctx, kCGLineJoinRound);
//线条宽度
CGContextSetLineWidth(ctx, 1.0);
//起点和终点圆角
CGContextSetLineCap(ctx, kCGLineCapRound);
//转角圆角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
//透明度
CGContextSetAlpha(ctx, 0.5)

3.画直线

//起点
CGContextMoveToPoint(ctx, 10.0, 100.0);
//终点
CGContextAddLineToPoint(ctx, self.frame.size.width-20.0, 100.0);
//颜色 两种设置颜色的方式都可以
//CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0);
[[UIColor redColor] set];
//渲染,直线只能绘制空心的,不能调用CGContextFillPath(ctx)
// 或者使用这个方法:CGContextDrawPath(ctx, kCGPathStroke);
CGContextStrokePath(ctx);

或者使用下面方法画直线

CGPoint point[2];//坐标点  
point[0] = CGPointMake(10.0, 100.0);//起点  
point[1] = CGPointMake(self.frame.size.width-20.0, 100.0);//终点   
//points[]坐标数组,和count大小  
CGContextAddLines(context, aPoints, 2);//添加线  
CGContextDrawPath(context, kCGPathStroke);

4.画虚线

//设置虚线颜色
CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);
//设置虚线绘制起点
CGContextMoveToPoint(ctx, 10.0, 50.0);
//设置虚线绘制终点
CGContextAddLineToPoint(ctx, self.frame.size.width-20.0, 50.0);
//设置虚线排列的宽度间隔:下面的arr中的数字表示先绘制3个点再绘制1个点
CGFloat arr[] = {3, 2};
//下面最后一个参数“2”代表排列的个数。
CGContextSetLineDash(ctx, 0, arr, 2);
CGContextDrawPath(ctx, kCGPathStroke);

5.画三角形

//起点
CGContextMoveToPoint(ctx, self.center.x, 200.0);
//拐点1
CGContextAddLineToPoint(ctx, self.center.x-50.0, 250.0);
//终点
CGContextAddLineToPoint(ctx, self.center.x+50.0, 250.0);
//颜色 两种设置颜色的方式都可以
//CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0);
[[UIColor redColor] set];
//合并三角形
CGContextClosePath(ctx);
CGContextFillPath(ctx);

6.画矩形

CGRect rectangle = CGRectMake(10.0, 300.0, self.frame.size.width-20.0, 60.0);
CGContextAddRect(ctx, rectangle);
CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextFillPath(ctx);

7.画圆


CGContextAddArc(ctx, self.center.x, 100.0, 75.0, 0.0, M_PI+0.5, 0);
CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextFillPath(ctx);

8.画椭圆

CGContextAddEllipseInRect(ctx, CGRectMake(x, y, 100.0, 60.0));
CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextFillPath(ctx);

9.画扇形

CGContextMoveToPoint(ctx, x, y);
CGContextAddArc(ctx, x, y, 75.0, 0.0, M_PI+0.5, 0);
CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextSetStrokeColorWithColor(ctx, [UIColor blueColor].CGColor);
CGContextDrawPath(ctx, kCGPathFillStroke);

10.画二次贝塞尔曲线

CGContextMoveToPoint(context, 120, 300);//设置Path的起点  
CGContextAddQuadCurveToPoint(context,190, 310, 120, 390);//设置贝塞尔曲线的控制点坐标和终点坐标  
CGContextStrokePath(context);

11.画三次贝塞尔曲线

CGContextMoveToPoint(context, 200, 300);//设置Path的起点  
CGContextAddCurveToPoint(context,250, 280, 250, 400, 280, 300);//设置贝塞尔曲线的控制点坐标和控制点坐标终点坐标  
CGContextStrokePath(context);

12.画文字

// 设置文字的属性
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[NSForegroundColorAttributeName] = [UIColor whiteColor];
dict[NSFontAttributeName] = [UIFont systemFontOfSize:14];
[@"I Love iOS" drawInRect:rect withAttributes:dict];

13.画图片

UIImage *image = [UIImage imageNamed:@"apple.jpg"];  
[image drawInRect:CGRectMake(60, 340, 20, 20)];//在坐标中画出图片  
//[image drawAtPoint:CGPointMake(100, 340)];//保持图片大小在point点开始画图片,可以把注释去掉看看  
CGContextDrawImage(context, CGRectMake(100, 340, 20, 20), image.CGImage);//使用这个使图片上下颠倒了      
//CGContextDrawTiledImage(context, CGRectMake(0, 0, 20, 20), image.CGImage);//平铺图 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: iOS开发CGContextRef画图使用总结

本文链接: https://www.lsjlt.com/news/147461.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS开发CGContextRef画图使用总结
    本文实例为大家汇总了iOS开发CGContextRef画图使用,供大家参考,具体内容如下 1.创建画布 CGContextRef ctx = UIGraphicsGetCurrent...
    99+
    2024-04-02
  • iOS开发CGContextRef画图怎么使用
    这篇“iOS开发CGContextRef画图怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“iOS开发CGContex...
    99+
    2023-06-30
  • Python在画图时使用特殊符号的方法总结
    目录一、问题背景二、注意事项三、常见特殊符号及对应代码四、引入特殊符号的万能方法本文总结了python画图中使用各种特殊符号方式 一、问题背景 在论文中,如何使用特殊符号进行表示?这...
    99+
    2024-04-02
  • Python画图常用代码总结,这20个画图代码现拿现用
    目录 前言 1、散点图 2、带边界的气泡图 3、带线性回归最佳拟合线的散点图 4、抖动图 5、计数图 6、边缘直方图 7、边缘箱形图 9、矩阵图 10、发散型条形图 11、发散型文本 12、发散型包点图 13、带标记的发散型棒棒糖图...
    99+
    2023-09-01
    python 开发语言 数据分析
  • 2020年面向iOS开发人员的知识点总结(更新中)
    前言:最近在整理自己的技术栈,收集了一些自己认为比较重要的知识点分享给大家。Runloop iOS中触摸事件传递和响应原理 为什么只有主线程的runloop是开启的 为什么只在主线程刷新UI PerformSelector和run...
    99+
    2023-06-04
  • iOS开发中AvaudioPlayer怎么使用
    在iOS开发中,你可以使用AVAudioPlayer类来播放音频文件。下面是使用AVAudioPlayer的基本步骤:1. 导入AV...
    99+
    2023-09-13
    iOS
  • iOS开发中nstimeinterval怎么使用
    NSTimeInterval是一个双精度浮点型的时间间隔,它表示自2001年1月1日午夜(GMT)以来的秒数。在iOS开发中,我们可...
    99+
    2023-08-24
    nstimeinterval
  • iOS开发中rangeOfString怎么使用
    rangeOfString是一个NSString类的方法,用于在字符串中查找指定的子字符串。它返回一个NSRange结构体,指示子字...
    99+
    2023-09-15
    iOS
  • IOS开发Objective-C Runtime如何使用
    这篇文章主要介绍“IOS开发Objective-C Runtime如何使用”,在日常操作中,相信很多人在IOS开发Objective-C Runtime如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-07-05
  • iOS开发之UIMenuController使用示例详解
    目录简介接口介绍使用探索如何创建并显示 UIMenuController实现 Item 点击事件菜单 Item 太多???UIResponderStandardEditActions...
    99+
    2024-04-02
  • Qt数据库相关应用开发总结
    目录一、前言二、数据库开发经验总结三、数据库连接说明四、数据库操作流程代码五、数据库综合应用组件一、前言 近期花了两个多月时间,将数据库相关的代码重新封装成了各种轮子(这条路必须打通...
    99+
    2024-04-02
  • 总结一般用哪些工具开发Node.js
    Node.js是一个开放源代码、跨平台的后端JavaScript运行环境。它使用Chrome V8引擎为JavaScript代码提供编译和执行能力,来构建快速轻量级的网络应用程序。Node.js在Web开发中已经变得不可或缺。在开发中,要选...
    99+
    2023-05-14
  • IOS开发Objective-C Runtime使用示例详解
    目录前言一些关键字消息传递 (Messaging)KVO关联对象 (Associated Objects)AOP(Method Swizzling)其它前言 Runtime&nbs...
    99+
    2023-02-13
    Objective-C Runtime iOS开发
  • iOS开发学习ViewController使用示例详解
    目录iOS ViewControllerWhat is a View Controller如何定义ViewController.ViewController的类型生命周期回调View...
    99+
    2022-11-13
    iOS开发ViewControlle iOS ViewControlle
  • iOS开发frame和bounds使用示例详解
    目录简述frame和bounds何时使用Frame,何时使用Bounds简述 Frame: 视图的位置和大小使用是父视图的坐标系,所以将视图放置在父级中这一点就很重要。 Bounds...
    99+
    2024-04-02
  • iOS开发xconfig和script脚本使用详解
    目录引言Xcode编译Xcode targetXcode projectXcode scheme新建configurationConfiguration文件的使用利用Configur...
    99+
    2024-04-02
  • Python开发工具Pycharm的安装以及使用步骤总结
    前言 PyCharm是一种Python 的IDE工具(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,内部集成的功能如下: Projec...
    99+
    2024-04-02
  • iOS 11开发中iOS11应用视图的示例分析
    这篇文章给大家分享的是有关iOS 11开发中iOS11应用视图的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在iPhone或者iPad中,用户看到的和摸到的都是视图。视图是用户界面的重要组成元素。本节将...
    99+
    2023-06-04
  • Kotlin开发的一些实用小技巧总结
    前言随着Google I/O大会的召开,Google宣布将支持Kotlin作为Android的开发语言,最近关于Kotlin的文章、介绍就异常的活跃。本文主要给大家介绍了关于Kotlin开发的一些实用小技巧,分享出来供大家参考学习,下面话不...
    99+
    2023-05-30
    kotlin 实用技巧
  • Spring框架开发scope作用域分析总结
    目录1.scope 作用域2.Idea中默认为singleton1.scope 作用域 Spring 管理的 bean 是根据 scope 来⽣成的,表示 bean 的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作