SwiftUI Есть ли возможность разместить объекты из массива по определенному пути (Path) с равным расстоянием?

Рейтинг: 0Ответов: 0Опубликовано: 07.03.2023

Нужно разместить объекты из массива circles по периметру фигуры с равным расстоянием друг от друга. Подскажите способ если есть такой.

import SwiftUI

struct ShapeWork: Shape {
    func path(in rect: CGRect) -> Path {
        var path = Path()
        
        path.move(to: CGPoint(x: 50, y: 30))
        path.addLine(to: CGPoint(x: 250, y: 0))
        path.addQuadCurve(
            to: CGPoint(x: 250, y: 100),
            control: CGPoint(x: 300, y: 50))
        path.addLine(to: CGPoint(x: 50, y: 100))
        path.addQuadCurve(
            to: CGPoint(x: 50, y: 30),
            control: CGPoint(x: 0, y: 75))
        
        return path
    }
}

struct Circle: Identifiable {
    let id: Int
    let opaciti: Double
}

struct ContentView: View {
    
    var circles: [Circle] = [
    Circle(id: 1, opaciti: 1),
    Circle(id: 2, opaciti: 1),
    Circle(id: 3, opaciti: 1),
    Circle(id: 4, opaciti: 1),
    Circle(id: 5, opaciti: 1),
    Circle(id: 6, opaciti: 1),
    Circle(id: 7, opaciti: 1)
    ]
    
    var body: some View {
        ZStack {
            ShapeWork()
                .stroke(lineWidth: 3)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .frame(width: 300, height: 100)
    }
}

Ответы

Ответов пока нет.