首先添加圆角的方式并没有变:
- (void)setCornerOnTop
{
UIBezierPath *maskPath;
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight)
cornerRadii:CGSizeMake(5.0f, 5.0f)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.layer.mask = maskLayer;
}
这是一段给UIView上边缘添加圆角的代码.
实际想说的是,究竟把它放在什么位置,才能让利用Masonry添加过约束的UIView产生圆角效果.
- (void)layoutSublayersOfLayer:(CALayer *)layer
就是这个方法,在此方法中调用上面的方法,UIView就可以产生圆角效果.
此方法被调用的时刻是:当图层的bounds发生改变,或者图层的setNeedsLayout方法被调用的时候.
附一行代码添加圆角的category的github地址,欢迎下载使用,十分方便
HGCorner