zoukankan      html  css  js  c++  java
  • ios 绘制虚线 CGContextSetLineDash的使用

    画虚线需要用到函数:

    CGContextSetLineDash

    此函数需要四个参数:

    • context – 这个不用多说
    • 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个点,如此反复,如图:

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

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

    float lengths[] = {10,5};  
    CGContextSetLineDash(context, 0, lengths, 2);    
    CGContextMoveToPoint(context, 0.0, 20.0);    
    CGContextAddLineToPoint(context, 310.0, 20.0);     
    CGContextStrokePath(context);  
                              
    CGContextSetLineDash(context, 5, lengths, 2);  
    CGContextMoveToPoint(context, 0.0, 40.0);    
    CGContextAddLineToPoint(context, 310.0, 40.0);  
    CGContextStrokePath(context);             
                                                  
    CGContextSetLineDash(context, 8, lengths, 2);     
    CGContextMoveToPoint(context, 0.0, 60.0);             
    CGContextAddLineToPoint(context, 310.0, 60.);             
    CGContextStrokePath(context);   

    如图显示:

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

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

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

     原文:http://blog.csdn.net/zhouleizhao/article/details/38655761

  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/ningmengcao-ios/p/6022806.html
Copyright © 2011-2022 走看看