gpt4 book ai didi

ios - 有没有办法以圆形排列布局按钮?

转载 作者:行者123 更新时间:2023-12-01 21:54:36 24 4
gpt4 key购买 nike

我试图在角落里做一个圆形按钮,当你按下它时,它周围会弹出 3 个按钮。当您按住大头针时,类似于 Pinterest 的菜单。我使用 UIBezierPath 查找过但这不是我要找的。我知道有 GitHub 库,但我正在尝试从头开始。

这是我尝试从头开始制作的示例:

example

我想出了如何使用圆角半径制作圆形按钮。我有一个特定的功能,它可以为按钮设置动画,但我不知道如何正确地将它们围成一圈。我使用了约束,但这使得方形布局比圆形布局更多。

最佳答案

你说:

but I can't figure out how to properly get them in a circle.



这只是一个小小的三角函数来确定新按钮的中心应该与现有按钮的关系。如果 r 是与现有圆的中心 x、y 的距离,并且圆 i 的角度为 θᵢ,则 xᵢ = x + r * cos(θᵢ) 和 yᵢ = y + r * sin(θᵢ)。 (在这种排列中,角度是从 3 点钟开始以弧度测量的,顺时针方向,或逆时针方向为负。)

例如,如果使用约束:
let r: CGFloat = 150               // let's say you want center of the circles to be 150 points away from center of existing button
let range = -CGFloat.pi / 2 ... 0 // and we want the angles to range from -π/2 to 0
let howMany = 5 // and you want five of them

for i in 0 ..< howMany {
let angle = range.lowerBound + CGFloat(i) / CGFloat(howMany - 1) * (range.upperBound - range.lowerBound)
let offset = CGPoint(x: r * cos(angle), y: r * sin(angle))
let button = ...
button.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: mainButton.centerXAnchor, constant: offset.x),
button.centerYAnchor.constraint(equalTo: mainButton.centerYAnchor, constant: offset.y),
button.widthAnchor.constraint(equalToConstant: 40),
button.heightAnchor.constraint(equalToConstant: 40)
])
}

enter image description here

关于ios - 有没有办法以圆形排列布局按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61379358/

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