gpt4 book ai didi

ios - 裁剪出优秀的View

转载 作者:搜寻专家 更新时间:2023-11-01 06:31:37 24 4
gpt4 key购买 nike

我正在尝试创建一个自定义 View ,其中我有一个按钮,我希望它的形状与 super View 相同。所以我创建了一个带圆角的 View 。我想要在 View 的底部有一个按钮,并在与 super View 相同的位置切出角。

Idea

我希望这张图片能说明我的意思。按钮的哪些属性需要获得与 super View 相同的形状。如果有帮助,这里还有代码。

let button: UIButton = {
let button = UIButton()
button.setTitle("Buy", for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 22)
//button.setTitleColor(UIColor.blue, for: .normal)
button.setTitleColor(UIColor.lightGray, for: .highlighted)
button.backgroundColor = .gray
button.clipsToBounds = true
return button
}()
func show(){

self.addSubview(background)
self.addSubview(overview)
background.frame = self.frame
background.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(close)))
overview.frame = CGRect(x: 40, y: 40, width: self.frame.width-80, height: self.frame.height-80)
let size = overview.frame


overview.addSubview(button)
let imageHeight = size.height/3


button.frame = CGRect(x: 0, y: size.height-38, width: size.width, height: 38)

UIView.animate(withDuration: 0.5) {
self.background.alpha = 1
self.overview.alpha = 1
}
}

最佳答案

尝试在包含按钮的 View 上设置 clipsToBounds = true。这应该使它夹住按钮。

否则,您可能需要为在底角而非顶部呈圆形的按钮构建 mask 。 (您可以使用 UIBezierPath 方法 init(roundedRect:byRoundingCorners:cornerRadii:) 来创建一个只有底部圆角的贝塞尔曲线路径,并将其安装为 CAShapeLayer 的路径,并将 THAT 安装为按钮的 mask 层。)

关于ios - 裁剪出优秀的View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504071/

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