相关疑难解决方法(0)

VStack 有最大限制吗?

我从一个干净的项目开始,在 VStack 中添加了 5 个按钮和 5 个垫片,一切都很好。当我在底部添加第 6 个间隔时,代码突然无法编译并出现错误:“对成员'buildBlock()'的不明确引用”。

是什么导致了这个错误?这是与 SwiftUI 相关的错误吗?或者它是一个功能?这不是我第一次注意到 VStack 或 HStack 的条目数量有限,是否有相关文档?

不完全鼓舞人心,我应该切换回 UIKit 吗?

swiftui vstack

23
推荐指数
2
解决办法
4387
查看次数

ScrollView + NavigationView 动画故障 SwiftUI

我有一个简单的看法:

var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                    ForEach(0..<2) { _ in
                        CardVew(for: cardData)
                    }
                }
            }
            .navigationBarTitle("Testing", displayMode: .automatic)
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是您可以用任何东西替换 CardView - 故障仍然存在。故障视频

有办法解决吗?

Xcode 12.0.1,斯威夫特 5

animation scrollview swift swiftui

20
推荐指数
3
解决办法
4003
查看次数

如何在 SwiftUI 中循环视图构建器内容子视图

所以我试图创建一个视图,它接受 viewBuilder 内容,循环内容的视图并在每个视图和另一个视图之间添加分隔符

struct BoxWithDividerView<Content: View>: View {
    let content: () -> Content
    init(@ViewBuilder content: @escaping () -> Content) {
        self.content = content
    }
    var body: some View {
        VStack(alignment: .center, spacing: 0) {
            // here
            
        }
        .background(Color.black)
        .cornerRadius(14)
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在我写“here”的地方,如果有意义的话,我想遍历内容的视图。我将编写一个不起作用的代码,但它解释了我想要实现的目标:

ForEach(content.subviews) { view  in
     view
     Divider()
}
Run Code Online (Sandbox Code Playgroud)

怎么做?

custom-view swiftui viewbuilder

6
推荐指数
2
解决办法
778
查看次数