view设置两个圆角之后改变frame的问题

项目中经常会遇到设置一个view两个圆角的问题,代码如下:

    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:_bgView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(13, 13)];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = _bgView.bounds;
    maskLayer.path = maskPath.CGPath;
    _bgView.layer.mask = maskLayer;

代码中是给_bgVIew设置上面的两个角为13的圆角,_bgVIew背景颜色是白色的

当你设置完这个之后,在次修改_bgView的时候,就会出现问题,比如去加大_bgview的高度,那么就会出现如图所示的问题:

正常情况:


view设置两个圆角之后改变frame的问题_第1张图片
1547717699320.jpg

修改_bgView高度之后,出现异常情况:


如图所示,设置两个圆角之后,在修改_bgView的高度就会出现,显示错误,蓝色区域

解决办法:
修改_bgVIew高度之后,在重新给_bgView设置一次两个圆角

你可能感兴趣的:(view设置两个圆角之后改变frame的问题)