当前位置: 首页 > news >正文

画虚线

绘制一条虚线,此方法可以写到UIImage的分类中,直接写成类方法调用即可。

 1 - (UIImage *)drawDashImageWithFrame:(CGRect)frame andLineColor:(UIColor *)lineColor
 2 {
 3     // 开启图形上下文
 4     UIGraphicsBeginImageContext(frame.size);
 5     
 6     // 获取上下文
 7     CGContextRef cxtRef = UIGraphicsGetCurrentContext();
 8     
 9     // 设置线头样式
10     CGContextSetLineCap(cxtRef, kCGLineCapRound);
11     
12     // 绘制3个点,跳过2个点,绘制3个点,跳过3个点,绘制2个点,如此反复
13     // CGFloat lengths[] = {3,2,3};
14     // 6是每个虚线的长度,5是虚线之间的间隔
15     CGFloat lengths[] = {6,5};
16     
17     // 设置线宽(向两边扩展)
18     CGContextSetLineWidth(cxtRef,1);
19     
20     // 设置线条渲染颜色
21     [lineColor setStroke];
22     
23     // 画虚线
24     // 参数2:第一次绘制的时候跳过多少个点
25     // 参数3:数组
26     // 参数4:数组长度
27     CGContextSetLineDash(cxtRef, 0,lengths, 2);
28     
29     // 开始画线-起点
30     CGContextMoveToPoint(cxtRef, 0.0, 0.0);
31     
32     // 线束画线-终点
33     CGContextAddLineToPoint(cxtRef, [UIScreen mainScreen].bounds.size.width, 0.0);
34     
35     // 设置描边
36     CGContextStrokePath(cxtRef);
37     
38     // 从图形上下文中获取图片
39     UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
40     
41     // 关闭图形上下文
42     UIGraphicsEndImageContext();
43     
44     return img;
45 }

 

转载于:https://www.cnblogs.com/panda1024/p/6219137.html

相关文章:

  • SFB 项目经验-09-用Lync 2013或Skype for Business 2015抢火车票
  • SEO优化---学会建立高转化率的网站关键词库
  • ★平衡法则在生活中的应用
  • (十五)使用Nexus创建Maven私服
  • 利用cmdline和gradle快速编译出apk
  • SOA和微服务
  • TreeMap按照value进行排序
  • chrome设置书签默认显示
  • markdown编辑器简评
  • Linux操作系统启动流程梳理
  • [译]MySQL 5.7 Reference Manual::The InnoDB Recovery Process
  • 重拾smslib
  • 【linux命令】之MV
  • 华硕zenfone2 ze551ml刷机
  • 动态规划——买股票的问题
  • ECMAScript6(0):ES6简明参考手册
  • export和import的用法总结
  • Hibernate最全面试题
  • jdbc就是这么简单
  • JDK 6和JDK 7中的substring()方法
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • vuex 学习笔记 01
  • Vue--数据传输
  • 闭包--闭包作用之保存(一)
  • 初识MongoDB分片
  • 设计模式(12)迭代器模式(讲解+应用)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • zabbix3.2监控linux磁盘IO
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 我们雇佣了一只大猴子...
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (145)光线追踪距离场柔和阴影
  • (bean配置类的注解开发)学习Spring的第十三天
  • (floyd+补集) poj 3275
  • (算法二)滑动窗口
  • (一)u-boot-nand.bin的下载
  • (转)h264中avc和flv数据的解析
  • .Mobi域名介绍
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NetCore 如何动态路由
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • /etc/fstab和/etc/mtab的区别
  • ??javascript里的变量问题
  • @property括号内属性讲解
  • [ Linux ] Linux信号概述 信号的产生
  • [C语言]——C语言常见概念(1)
  • [Head First设计模式]策略模式