我试图掩盖图像,以便我只能给它两个圆角。使用我所拥有的代码,它只是在图像上添加白色的蒙版,但似乎不适用它。我需要做些什么来掩盖图像角落?
CAShapeLayer *maskLayer = [CAShapeLayer layer];
UIBezierPath *roundedPath = [UIBezierPath bezierPathWithRoundedRect:maskLayer.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(16.f, 16.f)];
maskLayer.fillColor = [[UIColor whiteColor] CGColor];
maskLayer.backgroundColor = [[UIColor clearColor] CGColor];
maskLayer.path = [roundedPath CGPath];
// Add mask
self.imageView.layer.mask = maskLayer;
答案 0 :(得分:6)
如上述链接问题所述,您可能需要在应用其掩码之前从层次结构中删除该视图。
[self.imageView removeFromSuperview];
self.imageView.layer.mask = maskLayer;
[self.view addSubview:self.imageView];
此外,您的maskLayer
没有bounds
。您需要将其设置为您要屏蔽的视图的frame
(或bounds
)。
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.imageView.frame;