iOS開發筆記-48: 繪制虛線相關

swift

let shapeLayer:CAShapeLayer = CAShapeLayer()
        shapeLayer.frame = CGRect.init(x: 0, y: 1, width: kScreenW - 30, height: 2)
        shapeLayer.fillColor = UIColor.clear.cgColor
        //設置虛線顏色
        shapeLayer.strokeColor = kMainLightGrayColor.cgColor
        //設置虛線寬度
        shapeLayer.lineWidth = 1
        shapeLayer.lineJoin = .round
        shapeLayer.lineDashPhase = 0
        //設置虛線的線寬及間距
        shapeLayer.lineDashPattern = [NSNumber(value: 5), NSNumber(value: 5)]
        //創建虛線繪制路徑
        let path:CGMutablePath = CGMutablePath()
        //設置虛線繪制路徑起點
        path.move(to: CGPoint(x: 0, y: 0))
        //設置虛線繪制路徑終點
        path.addLine(to: CGPoint(x: kScreenW - 30, y: 0))
        //設置虛線繪制路徑
        shapeLayer.path = path
        //添加虛線
        line.layer.addSublayer(shapeLayer)
繪制虛線
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    [shapeLayer setBounds:_line2.bounds];
    [shapeLayer setPosition:CGPointMake(_line2.frame.size.width / 2.0,_line2.frame.size.height)];
    [shapeLayer setFillColor:[UIColor clearColor].CGColor];
    //設置虛線顏色
    [shapeLayer setStrokeColor:_kmainLightGrayColor.CGColor];
    //設置虛線寬度
    [shapeLayer setLineWidth:0.5];
    [shapeLayer setLineJoin:kCALineJoinRound];
    //設置虛線的線寬及間距
    [shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber       numberWithInt:5], [NSNumber numberWithInt:2], nil]];
    //創建虛線繪制路徑
    CGMutablePathRef path = CGPathCreateMutable();
    //設置虛線繪制路徑起點
    CGPathMoveToPoint(path, NULL, 0, 0);
    //設置虛線繪制路徑終點
    CGPathAddLineToPoint(path, NULL, _line2.frame.size.width, 0);
    //設置虛線繪制路徑
    [shapeLayer setPath:path];
    CGPathRelease(path);
    //添加虛線
    [_line2.layer addSublayer:shapeLayer];

//給控件邊緣加虛線
CAShapeLayer *border = [CAShapeLayer layer];
    border.strokeColor = [UIColor blackColor].CGColor;
    border.fillColor = nil;
    border.path = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
    border.frame = view.bounds;
    border.lineWidth = 1.f;
    border.lineCap = @"square";
    border.lineDashPattern = @[@4, @2];
    [view.layer addSublayer:border];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容