Как проскролить в нужную позицию если указан .position?

Если у Image есть указание в какой позиции он должен стоять, то скроллинг работает неправильно, он скролит туда, где Image бы стоял без указания .position. В примере синий бейсбольный мяч и маленькая звезда, при нажатии на кнопку, всё должно было просмолиться, чтобы звезда была в центре, но этого не происходит. Что я делаю не так?

struct ContentView: View {
    
    var body: some View {
        ScrollViewReader { proxy in
            Button("Scroll to small Image") {
                withAnimation {
                    proxy.scrollTo(111, anchor: .center)
                }
            }
            
            ScrollView([.horizontal, .vertical]) {
                ZStack {
                    Image(systemName: "baseball.circle")
                        .resizable()
                        .aspectRatio(1, contentMode: .fit)
                        .frame(width: 800, height: 1200)
                        .foregroundColor(.blue)
                    
                    Image(systemName: "star")
                        .resizable()
                        .aspectRatio(1, contentMode: .fit)
                        .frame(width: 80, height: 80)
                        .position(CGPoint(x: 180, y: 400)) // <----- not scrolling correctly to this position
                        .foregroundColor(.red)
                        .id(111)
                }
                .scrollTargetLayout()
            }
        }
    }
}

Ответы (1 шт):

Автор решения: OVERMIND

Наверно, вы, уже нашли ответ, однако, если ваш код немного отредактировать, то вы получите нужный результат:

        ScrollViewReader { proxy in
            Button("Scroll to small Image") {
                withAnimation {
                    proxy.scrollTo(111, anchor: .center)
                }
            }
            
            ScrollView([.horizontal, .vertical]) {
                    ZStack {
                        Image(systemName: "baseball.circle")
                            .resizable()
                            .aspectRatio(1, contentMode: .fit)
                            .frame(width: 800, height: 1200)
                            .foregroundColor(.blue)
                        
                        HStack{
                            HStack{
                                Image(systemName: "star")
                                    .resizable()
                                    .aspectRatio(1, contentMode: .fit)
                                    .foregroundColor(.red)
                                    .id(111)
                            }
                            .frame(width: 80, height: 80)
                            .position(CGPoint(x: 180, y: 400))
                        }
                        .frame(width: 800, height: 1200)
                    }
                }
            }
    ```
→ Ссылка