UIView 图层未正确屏蔽
Posted
技术标签:
【中文标题】UIView 图层未正确屏蔽【英文标题】:UIView layer not masking correctly 【发布时间】:2013-06-20 23:55:24 【问题描述】:我想创建一个在左上角和右上角都有圆角的 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;
但是,当我运行此代码时,掩码似乎无效。有什么想法为什么不呢?
【问题讨论】:
【参考方案1】:我在回答中没有提到的是,我还将与蒙版相同的 maskLayer 设置到另一个视图(一个屏幕外)。显然你不能这样做....我删除了多余的行
self.otherContainerView.layer.mask = maskLayer;
它按预期工作。
【讨论】:
对于遮罩,路径只能用于一个视图。如果您想在多个视图上使用它,您可以重新制作路径(即使使用相同的变量),然后将其添加到另一个视图。我也发现了这一点。以上是关于UIView 图层未正确屏蔽的主要内容,如果未能解决你的问题,请参考以下文章