IOS繪製虛線的方法總結_IOS

來源:互聯網
上載者:User

一、重寫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];

關於這種方式已經有人整理出了一個非常好用的類方法,具體見下面這段代碼,注意:下面非完整代碼,如有需要,請自己百度搜尋。

/** ** lineView:  需要繪製成虛線的view ** lineLength:  虛線的寬度 ** lineSpacing: 虛線的間距 ** lineColor:  虛線的顏色 **/ + (void)drawDashLine:(UIView *)lineView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *)lineColor{ CAShapeLayer *shapeLayer = [CAShapeLayer layer]; ..... [shapeLayer setStrokeColor:lineColor.CGColor]; ...... [shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithInt:lineLength], [NSNumber numberWithInt:lineSpacing], nil]];  ...... [lineView.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];

總結

以上內容部分來自於網路,本著分享的學習精神,如有涉及侵權問題,請及時告知。以上就是這篇文章的全部內容,歡迎大家一起探討學習,有問題請留言,小編將會儘快對你的問題進行回複。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.