如何将我的第一个项目和最后一个项目放在圈子之外?

时间:2019-11-27 12:42:00

标签: swift

我实现了一个带有一些按钮的圆形菜单。


我初始化了节点上的所有按钮,并使用以下功能将它们放在圆上:


    func placeButtonsOnCircle(index: Int) -> Transform {
        let size = Double(buttonsNode.contents.count)
        let endValue = fanMenu.interval.1
        let startValue = fanMenu.interval.0
        let interval = endValue - startValue

        var step: Double = 1.0
        if interval.truncatingRemainder(dividingBy: 2 * Double.pi) < 0.00001 {
            // full circle
            step = interval / size
        } else {
            step = interval / (size - 1)
        }

        // First and last button of the fanMenu
        let firstBtn = fanMenu.items.first
        let lastBtn = fanMenu.items.last

        let alpha = startValue + step * Double(index + 1)
        return Transform.move(
            // Place the button on the x-axis
            dx: cos(alpha) * fanMenu.menuRadius,
            // Place the buttons on the y-axis
            dy: sin(alpha) * fanMenu.menuRadius
        )
    }
  • buttonsNode.contents.count 返回按钮的数量
  • menuRadius 只是距圆的半径。可能就是一切
  • interval 返回弧度的按钮间隔:
fanMenu.interval = (1.5, 2.0 * .pi)
  • 移动 将按钮放置在圆轴上

This是FanMenu的代码。按钮在单独的类中初始化。 FanMenu是GitHub的一个项目,但我必须根据需要对其进行更新。

现在的问题是,是否可以抓住第一个和最后一个按钮并将其放置在圆圈之外。

enter image description here

0 个答案:

没有答案