设置虚线

在自定义view中

 - (instancetype)initWithFrame:(CGRect)frame {
    if (self == [super initWithFrame:frame]) {
        CAShapeLayer *border = [CAShapeLayer layer];
        
        border.strokeColor = [UIColor redColor].CGColor;
        
        border.fillColor = nil;
        
        border.path = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
        
        border.frame = self.bounds;
        
        border.lineWidth = 1.f;
        
        border.lineCap = @"square";
        
        border.lineDashPattern = @[@4, @4];    //可以修改查看不同效果
        
        [self.layer addSublayer:border];
    }
    return self;
}```


当不是在 
  • (instancetype)initWithFrame:(CGRect)frame;
 方法
而是在 
  • (instancetype)init;
我是这样写
  • (instancetype)init {
    if (self == [super init]) {
    }
    return self;
    }

  • (void)layoutIfNeeded {
    [super layoutIfNeeded];
    CAShapeLayer *border = [CAShapeLayer layer];

    border.strokeColor = [UIColor redColor].CGColor;

    border.fillColor = nil;

    border.path = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;

    border.frame = self.bounds;

    border.lineWidth = 1.f;

    border.lineCap = @"square";

    border.lineDashPattern = @[@4, @4];

    [self.layer addSublayer:border];

}

在创建 CustonView的时候
CustonView *view = [[CustonView alloc] init];//WithFrame:CGRectMake(100, 100, 100, 100)];
view.frame = CGRectMake(100, 100, 100, 100);
[view layoutIfNeeded];
[self.view addSubview:view];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,935评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,191评论 4 61
  • 今天看了晨读分享《经验的疆界》,里面谈到了低质学习和高质学习。简单点理解就是低质主要是简单复制经验,不要动脑子。高...
    二十少阅读 1,482评论 0 1
  • 每个人心中都有一个环游世界的梦: 想去瑞士看雪 想去新西兰看风车 想去南极看企鹅 .... 世界那么大,开阔眼界多...
    熊爸爸少年历史课阅读 3,405评论 0 6
  • 刚才在灶上吃饭,稀饭喝完了没想小家伙看到我碗里还有一丁点儿汤,便朝我说,粒粒皆辛苦,吃完。我这才回过神来,嗨,小家...
    薛静春阅读 1,651评论 3 2