我正在尝试将 UIView 的底部两个角变圆,并让图层的边框也显示为圆角。我目前正在做:
UIRectCorners corners = UIRectCornerBottomLeft | UIRectCornerBottomRight;
CGSize radii = CGSizeMake(kThisViewCornerRadius, kThisViewCornerRadius);
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:myView.bounds
byRoundingCorners:corners
cornerRadii:radii];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
[maskLayer setPath:path.CGPath];
myView.layer.mask = maskLayer;
这适用于普通视图。但是,myView
的图层有其borderColor
和borderWidth
设置,并且从屏幕截图中可以看出,图层的边框没有变圆:
我还尝试将 UIView 子类化并[CAShapeLayer layer]
从中返回+[Class layerClass]
,并将视图的图层设置为形状图层,但边框最终位于视图的子视图下方。
是否可以圆化视图的某些角,圆化视图图层的边框,并将子视图剪辑到图层边框下方?
请注意,这不是关于如何圆一些角而不是其他角,而是如何使笔划正确运行。