【发布时间】:2014-05-04 13:12:06
【问题描述】:
我一直在使用以下代码创建圆角视图:
- (void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
UIBezierPath* rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:corners
cornerRadii:CGSizeMake(_cornerRadius, _cornerRadius)];
CAShapeLayer* shape = [[CAShapeLayer alloc] init];
[shape setPath:rounded.CGPath];
view.layer.mask = shape;
}
所以我一直用类似这样的方式来称呼它:
[self setMaskTo:someView byRoundingCorners:UIRectCornerAllCorners];
或者:
[self setMaskTo:someOtherView byRoundingCorners:UIRectCornerBottomRight];
我现在想创建一些视图,对应于单个圆角的外侧...
上的某个位一个好方法(我想)是创建适当的 path 以便我可以创建一个 CAShapeLayer 然后将其用作视图的 mask (类似上面)。
我不确定使用UIBezierPath 类(或CGPath)时最好的方法是什么,哪些方法等。
有什么建议吗?
【问题讨论】:
标签: ios cocoa-touch uiview calayer uibezierpath