iOS单个或者多个圆角写法
2021-12-31 本文已影响0人
王看山
在写项目的时候,UI有顶部圆角底部直角的需求,之前用到过,知道有用CAShapeLayer+UIBezierPath来实现,但是一直都没有做记录,今天特地去温习了一下,记录一波。
注意:frame布局和masonry布局的区别,我这边是用的masonry,所以通过延时取到targetView的frame,最后顶部两个角的圆角就搞定了
UIRectCorner corners = UIRectCornerTopLeft|UIRectCornerTopRight;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.02 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
UIBezierPath *rounded = [UIBezierPath bezierPathWithRoundedRect:targetView.bounds byRoundingCorners:corners cornerRadii:CGSizeMake(5, 5)];
CAShapeLayer *shape = [[CAShapeLayer alloc] init];
[shape setPath:rounded.CGPath];
targetView.layer.mask = shape;
});