Как убрать отступы слева и справа от списка в SwiftUI - PullRequest
0 голосов
/ 20 октября 2019

Я использую List для динамического создания нескольких экземпляров представления, однако, когда используется заполнение списка, добавляется слева и справа от дочерних представлений, и я не могу удалить его. Я пытался использовать .listRowInset, но это не дало видимого эффекта.

Я создал PostView, который работает как нужно. Я использую «PostsView» для динамического создания нескольких экземпляров PostView.

Я пытаюсь заставить изображение в PostView касаться краев экрана в PostsView.

PostView

import SwiftUI



struct PostView: View {
    var post: Post

    var body: some View {

        VStack {
            HStack {
                Text(post.songInfo.album).font(.title)
                Spacer()
                Text(post.songInfo.artist)
            }.padding()

            Image(post.songInfo.albumArtUrl)
                .resizable()
                .aspectRatio(UIImage(named: "sweetner")!.size,  contentMode: .fit)
            HStack {
                Image("plus-icon")
                Spacer()
                Image("comment-icon")
                Spacer()
                Image("headset-icon")
            }.padding()

            HStack {
                Text(post.user.userName)
                Spacer()
                Text(post.textContent)
            }.padding()


        }
    }
}

PostsView

import SwiftUI

struct PostsView: View {
   @ObservedObject var fbVM = FirebaseInfo()

    var body: some View {

       List(fbVM.visiblePosts) { post in
            PostView(post: post)
       }

    }
}

struct PostsView_Previews: PreviewProvider {
    static var previews: some View {
        PostsView()
    }
}

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 октября 2019

Похоже, что вы можете настроить заполнение в самом списке, чтобы удалить начальные и конечные поля.

import SwiftUI

struct PostsView: View {
   @ObservedObject var fbVM = FirebaseInfo()

    var body: some View {

       List(fbVM.visiblePosts) { post in
            PostView(post: post)
       }.padding(.horizontal, -20) // -20 seems to make it go edge to edge

    }
}

struct PostsView_Previews: PreviewProvider {
    static var previews: some View {
        PostsView()
    }
}

Вам также может понадобиться настроить отступ внутри PostView длятекст вроде этого Text("Title").font(.title).padding(.leading, -10) Это кажется более сложным, чем должно быть, но, похоже, работает.

0 голосов
/ 20 октября 2019

Использование .listRowInsets модификатор внутри List строитель

var body: some View {
    List {
        Text("String")
            .listRowInsets(EdgeInsets())
    }
}
...