IOS繪制虛線的方法總結

一、重寫drawRect方法

    - (void)drawRect:(CGRect)rect
    {
     [super drawRect:rect];
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    //設置虛線顏色
     CGContextSetStrokeColorWithColor(currentContext, [UIColor     BlackColor].CGColor);
     //設置虛線寬度
     CGContextSetLineWidth(currentContext, 1);
     //設置虛線繪制起點
     CGContextMoveToPoint(currentContext, 0, 0);
     //設置虛線繪制終點
     CGContextAddLineToPoint(currentContext, self.frame.origin.x + self.frame.size.width, 0);
     //設置虛線排列的寬度間隔:下面的arr中的數字表示先繪制3個點再繪制1個點
     CGFloat arr[] = {3,1};
     //下面最后一個參數“2”代表排列的個數。
     CGContextSetLineDash(currentContext, 0, arr, 2);
     CGContextDrawPath(currentContext, kCGPathStroke);
    }

二、采用CAShapeLayer方式繪制虛線

    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    [shapeLayer setBounds:self.bounds];
    [shapeLayer setPosition:CGPointMake(self.frame.size.width / 2.0,       self.frame.size.height)];
    [shapeLayer setFillColor:[UIColor clearColor].CGColor];
    //設置虛線顏色
    shapeLayer setStrokeColor:[UIColor BlackColor].CGColor];
    //設置虛線寬度
    [shapeLayer setLineWidth:self.frame.size.height];
    [shapeLayer setLineJoin:kCALineJoinRound];
    //設置虛線的線寬及間距
     [shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber       numberWithInt:3], [NSNumber numberWithInt:1], nil]];
     //創建虛線繪制路徑
     CGMutablePathRef path = CGPathCreateMutable();
     //設置虛線繪制路徑起點
     CGPathMoveToPoint(path, NULL, 0, 0);
     //設置虛線繪制路徑終點
      CGPathAddLineToPoint(path, NULL, self.frame.size.width, 0);
       //設置虛線繪制路徑
     [shapeLayer setPath:path];
     CGPathRelease(path);
     //添加虛線
     [self.layer addSublayer:shapeLayer];

三、經濟實惠型:采用貼圖的方式繪制虛線(需要設計師切圖配合)

      UIImageView *imgDashLineView =[[UIImageView alloc] initWithFrame:CGRectMake(15, 200, self.view.frame.size.width - 30, 1)];
    [imgDashLineView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage         imageNamed:@"xuxian.png"]]];
      [self.view addSubview:imgDashLineView];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 目錄: 主要繪圖框架介紹 CALayer 繪圖 貝塞爾曲線-UIBezierPath CALayer子類 補充:i...
    Ryan___閱讀 1,713評論 1 9
  • 轉載:http://www.lxweimin.com/p/32fcadd12108 每個UIView有一個伙伴稱為l...
    F麥子閱讀 6,318評論 0 13
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,251評論 4 61
  • 和我聊過天的人們都說 “誒,我覺得你吧,離成人只差一步,但是比小孩懂事多了,是不是這樣?” 是嗎?我也搞不懂我自己...
    暖暖的貓七啊閱讀 182評論 0 0
  • Hydra 是一個 Swift 3 編寫的異步框架, 它輕量級并且支持幾乎所有的異步方法 like always,...
    阿瑟李閱讀 790評論 0 3