iOS 开发相关

UIImageView 随意设置4个角的圆角

2018-09-14  本文已影响255人  iLeooooo

当设置视图的阴影和设置圆角冲突的时候,就可以放大招了,使用下面的方法进行随意设置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;
上一篇下一篇

猜你喜欢

热点阅读