ios 使用Quartz 2D画虚线 - little_star

前言:我想实现一个类似QQ截图一样的,带矩形框的截图效果。那么,在去实现怎么话矩形框之前,我们先从最基本的入手,学习怎么在ios的界面上画图,画虚线。

画虚线的方法:

CG_EXTERN void CGContextSetLineDash(CGContextRef c, CGFloat phase,
    const CGFloat lengths[], size_t count)
    CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);

四个参数context、phase、lengths[]、count。

phase:表示在第一个虚线绘制的时候跳过多少个点,可参看例子。

lengths[]:表示虚线画的样式。

count:等于lengths数组的长度。

这样干巴巴的讲,可能不是很清楚。没关系,下面我们通过几个例子来说明各个参数的含义。

CGContextRef context =UIGraphicsGetCurrentContext();  //获取绘图上下文----画板
CGContextBeginPath(context);  //创建一条路径
CGContextSetLineWidth(context, 2.0);  //设置线宽
CGContextSetStrokeColorWithColor(context, [UIColorwhiteColor].CGColor);  //设置线的颜色
float lengths[] = {10,10};  
CGContextSetLineDash(context, 0, lengths,2);  //设置虚线的样式
CGContextMoveToPoint(context, 10.0, 20.0);  //将路径绘制的起点移动到一个位置,即设置线条的起点
CGContextAddLineToPoint(context, 310.0,20.0);  //在图形上下文移动你的笔画来指定线条的重点
CGContextStrokePath(context);  //创建你已经设定好的路径。此过程将使用图形上下文已经设置好的颜色来绘制路径。
CGContextClosePath(context);

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

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

本文内容转自: http://blog.csdn.net/zhangao0086/article/details/7234859 ,尊重原创。

另:有时间的话可以看一下ios绘图的原理、图形开发等。


转载自:

http://www.cnblogs.com/wyqfighting/p/3189863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值