SwiftUI горизонтальный ScrollView, желающий автоматически центрировать элемент - PullRequest
0 голосов
/ 26 апреля 2020

Я очень новичок в SwiftUI и пытаюсь найти лучший способ справиться с этим.

Я настроил вид карты и имею горизонтальный вид ScrollView. Я пытаюсь заставить его привязываться или выравниваться к следующей карточке, чтобы она всегда была центральной. Подумайте о вкладке приложений или игр App Store в шапке, я хочу, чтобы она вела себя так.

Я много раз искал это, но, похоже, не могу найти решение, по крайней мере, в SwiftUI. Я реализовал аналогичную вещь в приложении UIKit, но я ищу собственное решение SwiftUI, если это вообще возможно. Это то, что я реализовал ранее https://github.com/BenEmdon/CenteredCollectionView Хотя я пытаюсь найти более легкий и оригинальный способ SwiftUI сделать это, если это вообще возможно, поскольку я всегда чувствовал, что это было немного тяжело для того, что мне нужно.

Код, который у меня есть на данный момент, выглядит следующим образом:

ScrollView(.horizontal, 
           content: {
               HStack {
                   CardView(card: cardDetails)
                   CardView(card: cardDetails)
                   CardView(card: cardDetails)
                   CardView(card: cardDetails)
               }
               .padding(.leading, 10)
})
.frame(height: 250)

struct CardView: View {
    let card: Card

    var body: some View {
        ZStack {
            RoundedRectangle(cornerRadius: 25, style: .continuous)
                .fill(Color.white)

            VStack {
                Text(card.prompt)
                    .font(.largeTitle)
                    .foregroundColor(.black)

                Text(card.answer)
                    .font(.title)
                    .foregroundColor(.gray)
            }
            .padding(20)
            .multilineTextAlignment(.center)
        }
        .frame(width: 450, height: 250)
    }
}

Любая информация будет принята с благодарностью, заранее благодарю за помощь.

Вот изображение из В App Store заголовок раздела похож на тот, который я хочу достичь, когда вы прокручиваете его, он прокручивается для каждого элемента и почти привязывается к следующему элементу, а не к бесплатной прокрутке:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...