2015-12-05 26 views
1

我使用下面的代码试图圆一个UIView的右上角:舍入角落UIRectCornerTopRight不起作用

UIBezierPath* rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerTopRight cornerRadii:CGSizeMake(10.0, 10.0)]; 

CAShapeLayer* shape = [[CAShapeLayer alloc] init]; 
[shape setPath:rounded.CGPath]; 

view.layer.mask = shape; 

当我运行代码,UIView的只是不圆右上角:

然而,当我从UIRectCornerTopRight到UIRectCornerTopLeft改变,似乎工作:

+0

是否有任何其他视图上的文本可能会削减它?你尝试过其他角落吗?你在哪里致电该代码? – beyowulf

+0

在您发布的第一张图片中,灰色区域的右上角出现了一些内容。那是别的什么,或者是由相同的代码引起的? – mahboudz

+0

你有没有得到这个工作?将我的代码移至viewDidLayoutSubviews中,如@ beyowulf的答案对我无效。 – SilentNot

回答

4

我假设你在viewDidLoad或布局引擎调整了你的文本框架之前的某个地方有这样的代码,因此掩码路径是为了一个更长的帧。尝试将代码移至viewDidLayoutSubviews。

+0

将代码移至* viewDidLayoutSubviews *作品 –