0

我想创建一个在左上角和右上角有圆角的 UIView。

为了做到这一点,我想用 CAShapeLayer 屏蔽 UIView。

这是我正在使用的代码:

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.menuContainerView.bounds
                                               byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight
                                                     cornerRadii:CGSizeMake(20.0, 20.0)];

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.menuContainerView.bounds;
maskLayer.path = maskPath.CGPath;

self.menuContainerView.layer.mask = maskLayer;

但是,当我运行此代码时,掩码似乎无效。有什么想法为什么不呢?

4

1 回答 1

0

我在回答中没有提到的是,我还将相同的 maskLayer 设置为另一个视图(一个屏幕外)的掩码。显然你不能这样做......我删除了那条额外的线

self.otherContainerView.layer.mask = maskLayer;

它按预期工作。

于 2013-06-21T00:47:28.820 回答