gpt4 book ai didi

ios - 在 UIView 顶部添加减法掩码

转载 作者:行者123 更新时间:2023-11-29 05:56:41 25 4
gpt4 key购买 nike

我想将一个 UIView 放在另一个 UIView 之上作为减法掩码。可以这样做吗?

我有一张矩形照片,我想在它上面放置一个带有黑色圆角的蒙版。我不想把圆角放在照片本身上。本质上,面具有点像一个可以透过的相框。

Photo of a tree with a mask rounding the corners

最佳答案

我曾经使用 this 这样做过一次作为引用。它基本上是在 UIImageView 顶部的 UIView 上设置一个 CAShapeLayer。这就是您所需要的:

// Add image view to the root view
let image = UIImage(named: "SomeImage.jpg")
let imageView = UIImageView(frame: view.bounds)
imageView.image = image
view.addSubview(imageView)

// Add mask view on the of image view
let maskView = UIView(frame: view.bounds)
maskView.backgroundColor = .black
view.addSubview(maskView)

// The layer that defines your maskView's behavior
let maskLayer = CAShapeLayer()
maskLayer.frame = maskView.bounds

// Create the frame for the circle.
let radius: CGFloat = 100.0
let roundedRectPath = UIBezierPath(roundedRect: maskView.frame, cornerRadius: radius)

let path = UIBezierPath(rect: maskView.bounds)

// Append the rounded rect to the external path
path.append(roundedRectPath)

maskLayer.fillRule = .evenOdd
maskLayer.path = path.cgPath
maskView.layer.mask = maskLayer

结果如下:

enter image description here

希望有帮助!

关于ios - 在 UIView 顶部添加减法掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com