用UIBezierPath 画指定圆角不生效, 明明设置了 左上角和右上角,结果只有左上角才变圆了。
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor orangeColor];
view.frame = CGRectMake(100, 100, 100, 100);
[self.view addSubview:view];
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;

经过测试,我同时设置 UIRectCornerTopLeft|UIRectCornerBottomLeft
生效了, 但 设置 UIRectCornerTopRight|UIRectCornerBottomRight
不生效, 那是否可以判断此处设置右边圆角就有问题的呢

后来重新设置下 View 的 Frame 就好了。
网友评论