我有一个UIImageView,我想在图像视图的中心制作一个透明的圆形区域,这样当图像传递到图像视图时,图像似乎覆盖了所有的图像视图,除了中心。
这是我目前拥有的而不是图像中的黑色圆圈,我希望看到背景。
有一个类似的问题here但我需要有人告诉我如何在代码中执行此操作,因为我真的不知道Core Graphics。
非常感谢任何帮助。
答案 0 :(得分:4)
这样做:
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50.0, 50.0, 100.0, 100.0)];
[imageView setBackgroundColor:[UIColor redColor]];
UIBezierPath *maskPath = [UIBezierPath bezierPathWithOvalInRect:imageView.bounds];
UIBezierPath *holePath = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(imageView.bounds, 35.0, 35.0)];
[maskPath appendPath:holePath];
CAShapeLayer *mask = [CAShapeLayer layer];
[mask setFillRule:kCAFillRuleEvenOdd];
mask.path = maskPath.CGPath;
[imageView.layer setMask:mask];
[self.view addSubview:imageView];
你给“洞穴路径”提供的内容越多。内圈的半径越小;)
答案 1 :(得分:0)
快捷键5
let maskPath = UIBezierPath(ovalIn: albumImageView.bounds)
let holePath = UIBezierPath(ovalIn: albumImageView.bounds.insetBy(dx: 30,dy: 30))
maskPath.append(holePath)
let mask = CAShapeLayer()
mask.fillRule = .evenOdd
mask.path = maskPath.cgPath
albumImageView.layer.mask = mask