CPoint позиционирование SwiftUI - PullRequest
0 голосов
/ 30 января 2020

Я рисую линию с помощью Path, и на этой линии я хочу иметь круг, если я играю вокруг, я, конечно, могу получить круг на линии. Однако я не понимаю, почему этот код не ставит кружок на линии:

struct CircleOnLineView: View {
    func createCirle() -> some View {
        return Circle().fill(Color.blue)
    }

    var body: some View {
        GeometryReader { geometry in
            ZStack {

                Path { path in
                    path.move(to: CGPoint(x: 0, y: geometry.size.height / 2))
                    path.addLine(to: CGPoint(x: geometry.size.width, y: geometry.size.height / 2))
                    }
                .stroke(Color.gray, lineWidth: 3)
                Circle()
                    .fill(Color.blue)
                    .position(CGPoint(x: 0 , y: geometry.size.height / 2))
                .frame(width: 5, height: 5)

            }
        }

    }
}

Result of positioning

1 Ответ

1 голос
/ 30 января 2020

Порядок модификаторов в этом случае важен. Вот как это ожидается (1-й размер фигуры, 2-й - ее расположение):

enter image description here

Circle()
    .fill(Color.blue)
    .frame(width: 5, height: 5)
    .position(CGPoint(x: 0 , y: geometry.size.height / 2))
...