我做了一些研究,发现没有简单的方法可以只将UIView的右上角和左上角变为圆角,对吧?
ps. 这段代码会将所有4个角变成圆角,这不是我想要的。
#import <QuartzCore/QuartzCore.h>
self.layer.cornerRadius = 5;
self.layer.masksToBounds = YES;
我做了一些研究,发现没有简单的方法可以只将UIView的右上角和左上角变为圆角,对吧?
ps. 这段代码会将所有4个角变成圆角,这不是我想要的。
#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
单元格时使用类似的东西,我发现最好选择使用背景图像,因为这种绘图方式总是会影响性能。
UITableViewCell
单元格时使用此类东西,我发现最好选择使用背景图像,因为这种绘图操作总是会影响性能。 - amb我曾经尝试过对UIView进行扩展,但是它并没有起作用,因为在绘制单元格时会出现问题。
现在我有了更好、更简单的解决方案,只需要两个步骤就可以完美地解决问题 :)
1)一行代码(Swift 2.0)- 它可以将视图的四个角都圆润起来:
YourView.layer.cornerRadius = 10
2) 在Storyboard中,您可以添加一个带有常规角的视图,无需圆角,并根据需要调整约束:
请注意,小的常规角视图应该在主视图后面。在Storyboard中是这样的