我做了一些研究,我明白了,没有简单的方法可以只使 UIView 的右上角和左上角为圆形,对吧?
附言。此代码使所有 4 个角都变圆,这是 smth。我不想要。
#import <QuartzCore/QuartzCore.h>
self.layer.cornerRadius = 5;
self.layer.masksToBounds = YES;
你可以用这个片段来做到这一点:
// Set top right & left corners
[self setMaskTo:yourView byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight];
编辑
对不起,我忘了这个
- (void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
UIBezierPath *rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:corners
cornerRadii:CGSizeMake(8.0, 8.0)];
CAShapeLayer *shape = [[CAShapeLayer alloc] init];
[shape setPath:rounded.CGPath];
view.layer.mask = shape;
}
PS:正如我在评论中所说,如果您在显示UITableViewCell
单元格时使用这样的东西,我发现使用背景图像总是更好的选择,因为这种绘图东西总是会影响性能。
我尝试了一次 UIView 的扩展,但它对我不起作用,因为它在绘制单元格时引起了问题
我现在通过两个步骤得到了一个更好更简单的解决方案,效果非常好:)
1) 一行代码 (Swift 2.0) - 它环绕视图的所有 4 个角:
YourView.layer.cornerRadius = 10
2)在情节提要中添加一个添加 1 个带有常规角的视图,您不需要圆角并根据需要调整约束:请注意,小的常规角视图应位于主视图后面。这就是它在故事板中的样子