gpt4 book ai didi

ios - iOS两个圆形的矩形

转载 作者:行者123 更新时间:2023-12-01 21:27:37 25 4
gpt4 key购买 nike

我想在另一个里面放一个圆形的盒子,像这样:
enter image description here
如您所见,右侧边缘被切除,但是我不明白为什么。
这是我正在使用的代码:

    let underButton = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.allCorners, cornerRadii: CGSize(width: 100.0, height: 100.0))
let gradient = CAGradientLayer()
gradient.frame = underButton.bounds
gradient.colors = [UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1).cgColor, UIColor(red: 200.0/255.0, green: 200.0/255.0, blue: 200.0/255.0, alpha: 1).cgColor]
let shapeMask = CAShapeLayer()
shapeMask.path = underButton.cgPath
gradient.mask = shapeMask
self.layer.insertSublayer(gradient, at:0)

let overRect = CGRect(x : rect.origin.x + 3, y : rect.origin.y, width : rect.size.width - 12.0, height: rect.size.height - 6.0)
let overButton = UIBezierPath(roundedRect: overRect, byRoundingCorners: UIRectCorner.allCorners, cornerRadii: CGSize(width: 100.0, height: 100.0))
let gradient2 = CAGradientLayer()
gradient2.frame = overButton.bounds
gradient2.colors = [UIColor(red: 255.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1).cgColor, UIColor(red: 255.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1).cgColor]
let shapeMask2 = CAShapeLayer()
shapeMask2.path = overButton.cgPath
gradient2.mask = shapeMask2
self.layer.insertSublayer(gradient2, at:1)
有人可以帮助我了解我的错吗?先感谢您。

最佳答案

除了Superview / Superlayer之外,以某种形式设置某事物的frame毫无意义,因此gradient.frame = underButton.bounds行两次都是错误的。您希望两个渐变帧都为self.layer.bounds,因为这将是它们的超层。
然后,只需将内部按钮移到中间,用x : rect.origin.x + 6代替3,即可完成操作。
(我猜您也想在y原点加3,但这只是一个猜测。您没有显示所需输出的图像。)

关于ios - iOS两个圆形的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63306048/

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