我做了一些研究,我知道,没有简单的方法 只使 UIView回合的右上角和左上角,对吧?
PS。这段代码使得所有4个角都是圆形的。我不想要。
#import <QuartzCore/QuartzCore.h>
self.layer.cornerRadius = 5;
self.layer.masksToBounds = YES;
答案 0 :(得分:21)
您可以使用此代码段执行此操作:
// 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
单元格时使用这样的东西,我发现使用背景图像总是更好的选择,因为这种绘图材料总会影响性能
答案 1 :(得分:0)
我尝试过一次UIView的扩展,它对我不起作用,因为它在绘制单元格时引起了问题
我现在通过两个步骤获得了更好,更简单的解决方案,效果非常好:)
1)一行代码(Swift 2.0) - 它会伤害视图的所有四个角落:
YourView.layer.cornerRadius = 10
2)并在故事板中添加一个视图,添加1个带有常规角的视图,您不需要圆角并根据需要调整约束: 请注意,小的常规角视图应位于主视图的后面。 ion-datetime-picker