ios-画虚线

作者: 命运建筑师fly | 来源:发表于2017-10-25 08:29 被阅读3263次

需求:

需要实现虚线功能

实现方法:

方法一:
使用贝塞尔曲线实现

- (void)addBorderToLayer:(UIView *)view
{
    CAShapeLayer *border = [CAShapeLayer layer];
    //  线条颜色
    border.strokeColor = [UIColor lightGrayColor].CGColor;
    
    border.fillColor = nil;
    
    
    UIBezierPath *pat = [UIBezierPath bezierPath];
    [pat moveToPoint:CGPointMake(0, 0)];
if (CGRectGetWidth(view.frame) > CGRectGetHeight(view.frame)) {
    [pat addLineToPoint:CGPointMake(view.bounds.size.width, 0)];
}else{
    [pat addLineToPoint:CGPointMake(0, view.bounds.size.height)];
}
    border.path = pat.CGPath;
    
    border.frame = view.bounds;
    
    // 不要设太大 不然看不出效果
    border.lineWidth = 0.5;
    border.lineCap = @"butt";
    
    //  第一个是 线条长度   第二个是间距    nil时为实线
    border.lineDashPattern = @[@6, @10];
    
    [view.layer addSublayer:border];
}

方法二:
Quartz 2D绘制

- (void)addBorderToLayer2:(UIView *)view
{
    
    
    
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    [shapeLayer setBounds:view.bounds];
    [shapeLayer setPosition:CGPointMake(CGRectGetWidth(view.frame) / 2, CGRectGetHeight(view.frame)/2)];
    
    [shapeLayer setStrokeColor:[UIColor lightGrayColor].CGColor];
    [shapeLayer setLineWidth:0.5];
    //  设置线宽,线间距
    [shapeLayer setLineDashPattern:@[@6,@10]];
    //  设置路径
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, 0, 0);
    if (CGRectGetWidth(view.frame) > CGRectGetHeight(view.frame)) {
        CGPathAddLineToPoint(path, NULL, CGRectGetWidth(view.frame),0);
    }else{
        CGPathAddLineToPoint(path, NULL, 0,CGRectGetHeight(view.frame));
    }
    [shapeLayer setPath:path];
    CGPathRelease(path);
    
    //  把绘制好的虚线添加上来
        [view.layer addSublayer:shapeLayer];
}

相关文章

  • ios-画虚线

    需求: 需要实现虚线功能 实现方法: 方法一:使用贝塞尔曲线实现 方法二:Quartz 2D绘制

  • 。虚线。?。画。?。懂吗。?。

    。把。该。用。虚线。?。画。?。的。用。虚线。?。画。?。懂吗。?。 。这是。清理。?。大脑。?。的。重点。?。懂...

  • iOS-虚线Category

    实际项目中已用到 绝对可用。记录下来方便以后查阅 .h #import typedef NS_ENUM(NSIn...

  • 画虚线

    绘制一条水平的虚线

  • 画虚线

  • 画虚线

    - (void)drawLine { UIView*lineView = [[UIViewalloc]init];...

  • 画虚线

    注意事项: android:layerType="software"

  • 画虚线

    毕业之后才发现,数学都还给数学老师了。就连三角函数都忘了。请教大佬手把手教我老半天终于会画虚线了!做一下笔记,说不...

  • 画虚线

    //画虚线 (UIImage *)drawLineWithView:(UIImageView *)imageVie...

  • iOS竖直虚线画法

    项目中有画水平虚线和竖直虚线的需求,便在网上参考了别人的水平虚线画法,子类化了竖直虚线的DashLineView ...

网友评论

    本文标题:ios-画虚线

    本文链接:https://www.haomeiwen.com/subject/xcxbsxtx.html