#swiftui
Вопрос:
Я планирую добавить в свое приложение SwiftUI представление коллекции, которое вы можете увидеть в разделе «Обзор» Apple music или на вкладке «приложения» в магазине приложений. Я пробовал использовать вид прокрутки и стеки, но это не дает такого эффекта плавного перемещения. Я подумал, что для этого вы могли бы использовать макет NSCollectionView и доступный источник данных в UIKit, но я понятия не имею, как это сделать в SwiftUI. Есть какие-нибудь мысли?
Вот мой код.:
struct DiscoverPopularUsersViewPhone: View {
// MARK: Variables and Constants
@State private var fetchedUserAccounts: [UserAccount] = [UserAccount]()
var geometry: GeometryProxy
@State private var userResultsLoadState: LoadState = .inactive
// MARK: Body
var body: some View {
VStack(alignment: .leading, spacing: 12) {
Divider()
.padding(.horizontal, 18)
HStack(spacing: 16) {
Text("Popular Users")
.font(Font.title3.weight(.bold))
.foregroundColor(Color.primary)
Spacer()
NavigationLink(destination: Text("Popular Users")) {
Text("View more")
.font(Font.callout.weight(.regular))
}
}
.padding(.horizontal, 18)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 12) {
ForEach(fetchedUserAccounts) { account in
DiscoverUserGridItem(userAccount: account, size: (geometry.size.width - 18 * 2 - 12) / 2)
}
}
.padding(.horizontal, 18)
}
}
.onAppear(perform: fetchPopularUsers)
}
}
Метод fetchPopularUsers просто извлекает некоторые пользовательские данные
Я осознаю, что на самом деле нет способа сделать это, и это не ошибка. Но я хочу, чтобы все было немного по-другому, даже если это означает, что мне нужен совершенно новый подход.
Вы можете увидеть быстрый эффект, которого я хочу достичь, в верхней части приложения App Store. Я не мог включить видео, потому что оно было бы слишком большим
Примечание: Я хотел бы, чтобы пользователь видел, что он может прокручивать, поэтому я думаю, что модификатор PageTabViewStyle() для TabView также не подходит
Комментарии:
1. Можете ли вы включить то, что вы пробовали, и подробно описать, как отсутствует «эффект плавного движения»?
2. Спасибо за ваш быстрый ответ. Я обновил свой вопрос. Надеюсь, это немного прояснит ситуацию
3. Вы все еще не подробно остановились на «эффекте плавного движения». вы можете загрузить gif или что-то в этом роде?
4. Я имею в виду, что он всегда останавливается в центре, когда вы прокручиваете