解决UIView的圆角和阴影不能同时设置

2020-10-22  本文已影响0人  汗青fullstack

UIView的圆角和阴影不能同时设置,所以给原来的view添加一个shadow container view。
问题原因:由于设置阴影需要masksToBounds设置为NO,而设置圆角需要masksToBounds为YES,有冲突。

/**
 *  周边加阴影,并且同时圆角
 */
+ (UIView *)addShadowToView:(UIView *)view withOpacity:(float)shadowOpacity shadowRadius:(CGFloat)shadowRadius andCornerRadius:(CGFloat)cornerRadius {
    view.layer.cornerRadius = cornerRadius;
    view.layer.masksToBounds = YES;
    UIView *shadowView = [[UIView alloc] init];
    shadowView.layer.shadowColor = [UIColor blackColor].CGColor;
    shadowView.layer.shadowOffset = CGSizeMake(0,2);
    shadowView.layer.shadowOpacity = shadowOpacity;
    shadowView.layer.shadowRadius = shadowRadius;
    shadowView.layer.cornerRadius = cornerRadius;
    shadowView.clipsToBounds = NO;
    [shadowView addSubview:view];
    return shadowView;
}

执行效果:


image.png
上一篇 下一篇

猜你喜欢

热点阅读