博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 使用Quartz 2D画虚线 【转】
阅读量:5056 次
发布时间:2019-06-12

本文共 1411 字,大约阅读时间需要 4 分钟。

画虚线需要用到函数:

CGContextSetLineDash

此函数需要四个参数:

 

  • context – 这个不用多说
  • phase - 稍后再说
  • lengths – 指明虚线是如何交替绘制,具体看例子
  • count – lengths数组的长度

 

  1. CGContextRef context =UIGraphicsGetCurrentContext();  
  2. CGContextBeginPath(context);  
  3. CGContextSetLineWidth(context, 2.0);  
  4. CGContextSetStrokeColorWithColor(context, [UIColorwhiteColor].CGColor);  
  5. float lengths[] = {10,10};  
  6. CGContextSetLineDash(context, 0, lengths,2);  
  7. CGContextMoveToPoint(context, 10.0, 20.0);  
  8. CGContextAddLineToPoint(context, 310.0,20.0);  
  9. CGContextStrokePath(context);  
  10. CGContextClosePath(context);  

lengths的值{10,10}表示先绘制10个点,再跳过10个点,如此反复,如图:

如果把lengths值改为{10, 20, 10},则表示先绘制10个点,跳过20个点,绘制10个点,跳过10个点,再绘制20个点,如此反复,如图:

注意count的值等于lengths数组的长度

phase参数表示在第一个虚线绘制的时候跳过多少个点,举例说明:

 

  1. float lengths[] = {10,5};  
  2. CGContextSetLineDash(context, 0, lengths, 2);    
  3. CGContextMoveToPoint(context, 0.0, 20.0);    
  4. CGContextAddLineToPoint(context, 310.0, 20.0);     
  5. CGContextStrokePath(context);  
  6.                           
  7. CGContextSetLineDash(context, 5, lengths, 2);  
  8. CGContextMoveToPoint(context, 0.0, 40.0);    
  9. CGContextAddLineToPoint(context, 310.0, 40.0);  
  10. CGContextStrokePath(context);             
  11.                                               
  12. CGContextSetLineDash(context, 8, lengths, 2);     
  13. CGContextMoveToPoint(context, 0.0, 60.0);             
  14. CGContextAddLineToPoint(context, 310.0, 60.);             
  15. CGContextStrokePath(context);   
如图显示:

由于lengths值为{10,5},第一条线就是绘制10,跳过5,反复绘制。

第二条线的phase值为5,则首先绘制【10减去5】,再跳过5,绘制10,反复绘制。

第三条给也如此,先绘制2,再跳过5,如此反复。

转载于:https://www.cnblogs.com/jinjiantong/archive/2013/04/15/3021358.html

你可能感兴趣的文章
My.Ioc 的性能
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
hdoj 1846 Brave Game(巴什博弈)
查看>>
Round #345 B. Beautiful Paintings(Div.2)
查看>>
51nod 1018排序
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
linux swoole
查看>>
An Easy Problem?! - POJ 2826(求面积)
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
css3实现循环执行动画,且动画每次都有延迟
查看>>
更改git仓库地址
查看>>
有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
查看>>
Recipe 1.4. Reversing a String by Words or Characters
查看>>
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
Linux 平台下 MySQL 5.5 安装 说明 与 示例
查看>>
src与href的区别
查看>>