我正在尝试 mask 图像,以便只能给它两个圆角。使用我拥有的代码,它只是在图像上以白色添加了蒙版,但似乎没有应用它。我需要做些什么来遮盖图像角落?
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;
最佳答案
Round two corners in UIView
如以上链接的问题所述,您可能需要在应用其蒙版之前将 View 从层次结构中删除。
[self.imageView removeFromSuperview];
self.imageView.layer.mask = maskLayer;
[self.view addSubview:self.imageView];
另外,您的
maskLayer
没有bounds
。您需要将其设置为您要 mask 的 View 的frame
(或bounds
)。CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.imageView.frame;
关于iphone - iOS:使用UIBezierPath mask UIImage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7071815/