ScrollView не занимает полную ширину, когда список внутри пустIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 ScrollView не занимает полную ширину, когда список внутри пуст

Сообщение Anonymous »


Я создал список внутри представления прокрутки, который отлично работает, когда в нем есть элементы, но я заметил, что когда в списке нет элементов, представление прокрутки становится очень узким, и это затрудняет использование обновляемого . Я пробовал много решений в Интернете, таких как использование дополнительных прокладок, ширины GeometryReady и других вещей, но, похоже, ничего не помогло.

Вот мой код:

var body: some View { GeometryReader { гео в ZStack { LinearGradient(останавливается: [ Gradient.Stop(color: Color("Cottage Green Tertiary"), location: 0.0), Gradient.Stop(color: Color("Cottage Green Tertiary"), location: 0.85), Gradient.Stop(color: Color("Коттедж темно-зеленый"), location: 1.0) ], startPoint: .top, endPoint: .bottom) .edgesIgnoringSafeArea(.all) ScrollView(.вертикальный) { ForEach(Array(self.viewModel.posts.enumerated()), id: \.element) { индекс, сообщение в ВСтек { HStack { если self.viewModel.canDeletePost(postIndex: index) { Кнопка { self.viewModel.latestPostIndexSelectedToDelete = индекс self.isShowingDeleteConfirm = true } этикетка : { Изображение (имя системы: «мусор») .foregroundStyle(Color("Темно-зеленый коттедж")) } } Разделитель() Текст (getDateDescription (от: post.datePosted)) .font(.system(размер: 12)) .padding(.дно, 10) } Текст (пост.сообщение) .frame(maxWidth: .infinity, выравнивание: .leading) .padding(.дно, 10) HStack { Изображение (имя системы: «person.fill») .foregroundStyle(Color("Темно-зеленый коттедж")) Текст(post.poster.name) Разделитель() Кнопка { пусть ImpactMed = UIImpactFeedbackGenerator (стиль: .medium) ImpactMed.impactOccurred() if post.likers.contains(where: { $0 == self.userId }) { self.viewModel.removeLike(от: self.userId, для: index) } еще { self.viewModel.addLike(от: self.userId, для: index) } } этикетка : { if post.likers.contains(where: { $0 == self.userId }) { Изображение (имя системы: «hand.thumbsup.fill») .foregroundStyle(Color("Темно-зеленый коттедж")) } еще { Изображение (имя системы: «hand.thumbsup») .foregroundStyle(Color("Темно-зеленый коттедж")) } } Текст(Строка(post.likers.count)) } } .padding([.top, .bottom, .leading, .trailing], 10) .background(Color("Зеленый коттедж")) .cornerRadius(10) } .padding([.top, .bottom, .leading, .trailing], 10) .cornerRadius(10) } .frame(ширина: geo.size.width) .alert(isPresented: $isShowingDeleteConfirm) { Тревога( title: Text("Удалить сообщение?"), сообщение: ноль, PrimaryButton: .destructive(Text("Удалить")) { self.viewModel.deletePost() }, вторичная кнопка: .cancel() ) } .обновляемый { print("Выполняйте обновление здесь") делать { попробуйте дождаться viewModel.getPosts() } ловить { } } если self.loadingState.isLoading { ПрогрессВью() } } } } Вот как это выглядит, когда оно пусто:
Изображение


Любая помощь приветствуется, поскольку я новичок в SwiftUI! Спасибо!
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»