SwiftUI ScrollView动态高度

时间:2019-11-17 13:59:19

标签: swift dynamic height swiftui

我目前遇到的问题是我的滚动视图无法自动调整为内容的高度。我认为ASCollectionView是目前引起最多问题的一种。如果我手动调整框架高度(例如200,请参见图片),那么一切都可见。我当然要自动拥有它。你有什么想法吗?

我会很高兴!下午愉快。

弗洛里安

enter image description here enter image description here

ScrollView {
    ForEach(self.collectionListViewModel.collections) { collection in
        NavigationLink(destination: GameListView()) {
            VStack(alignment: .leading, spacing: 5) {

                // Name der Sammlung:
                Text(collection.name)
                    .font(.headline)
                    .foregroundColor(Color.black)

                // Optional: Für welche Konsolen bzw. Plattformen:
                ASCollectionView(data: collection.platforms, dataID: \.self) { item, _ in
                    Text("\(item)")
                        .fixedSize()
                        .padding(.horizontal, 10)
                        .padding(.vertical, 5)
                        .background(Color(.blue))
                        .foregroundColor(Color.white)
                        .cornerRadius(5)
                }
                .layout {
                    let fl = AlignedFlowLayout()
                    fl.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
                    return fl
                }

            }
            .padding(.vertical, 10)
        }
        Divider()
    }
    .padding(.horizontal, 20)
}

1 个答案:

答案 0 :(得分:0)

这里的问题是,无论给定多少空间,ASCollectionView都将(默认情况下)占用。当嵌套在ScrollView中时,可用空间量是不确定的。您可以将collectionView设置为自动根据其内容调整大小。 demo project here

中给出了一个示例

但是,嵌套滚动视图可能会带来困难,因此,我认为将标题文本作为一个部分放在ASCollectionView中会更容易实现您想要的行为。