CALayer进阶

相比大家对CALayer并不陌生,下面是我自己对CALayer做的用法总结:

/**
 *  添加圆角
 *  @param view 需要添加圆角的View
 */
- (void)addRoundCornerToView:(UIView *)view{
    view.layer.cornerRadius = 20;//圆角的程度,当值为view.size.height/2的时候,图形变成圆
    view.layer.masksToBounds = YES;
   // view.layer.borderWidth = 3;
    //view.layer.borderColor = [UIColor yellowColor].CGColor;
}
/**
 *  添加虚线边框
 *  @param view 需要添加虚线边框的View
 */
- (void)addLineLayerToView:(UIView *)view{
    CAShapeLayer * border = [CAShapeLayer layer];
    border.path = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
//虚线的路径,如果加了圆角的话,可以使用贝塞尔另一个方法获得圆角路径
    border.frame = view.bounds;
    border.strokeColor = [[UIColor redColor] CGColor];
    border.fillColor = nil;
    border.lineDashPattern = @[@6, @6];
    [view.layer addSublayer:border];
}

对于圆角的奇葩需求:部分圆角,并不是四个角都是圆角,可能其中的某几个进行圆角处理,利用mask就可以达到效果。

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:_imageView.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(20, 20)];//这里的参数分别是设置某一个圆角个圆角度数
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];    maskLayer.frame = _imageView.bounds;
maskLayer.path = maskPath.CGPath;
_imageView.layer.mask = maskLayer;```
未完待续...



欢迎关注我的[微博](http://dwz.cn/Smallwolf)和[博客](http://blog.sina.com.cn/u/2209572342)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,251评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,460评论 25 708
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 6月10日 晴 51.6公斤,我是吃饱了称的! 没有加班,吃了一顿好饭。最近加班比较严重,精力都有点跟不上了。 我...
    悟道阅读 330评论 0 2
  • 2016年的电影还没看几部,传说中的2017大片年又来了.... 《变形金刚5》《速度与激情8》,DC的《正义联盟...
    娱丸电影阅读 562评论 2 5