iOS UIImageView 随意设置4个角的圆角

释放双眼,带上耳机,听听看~!

当设置视图的阴影和设置圆角冲突的时候,就可以放大招了,使用下面的方法进行随意设置4个方向的圆角。

比如说:遇到下面的情况,图片要上面圆角,下面直角,外面的容器还要设置阴影。

目标效果

解决思路:在父视图容器上设置圆角,设置阴影,直接把图片放在容器里。设置裁剪子视图超出部分。
问题:当裁剪子视图遇到阴影的时候,不能同时兼顾

// 设置阴影的时候
view.masksToBounds = NO;
// 设置裁剪子视图
view.masksToBounds = YES;

会出现冲突。
解决方法:在外面的容器视图上设置阴影,不设置裁剪,直接设置图片的上面2个角为圆角,下面的2个角为直角。
代码:

    CGSize radii = CGSizeMake(5, 5);
// 随意改变4个圆角
UIRectCorner corners = UIRectCornerTopLeft | UIRectCornerTopRight;
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.spreadImageV.bounds byRoundingCorners:corners cornerRadii:radii];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = path.CGPath;
maskLayer.masksToBounds = NO;
self.spreadImageV.layer.mask = maskLayer;

人已赞赏
iOS文章

iOSXML与JSON数据格式的方法

2020-2-5 10:43:53

iOS文章

CNCopyCurrentNetworkInfo 在 iOS 13 中的新特性

2020-2-5 11:41:48

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索