我使用 ForEach 循环遍历保存的用户输入数组并显示这些输入,这会正确显示所有内容,除非我向该数组添加新输入,否则不会显示新项目,除非我导航到另一个视图然后来后退。
我已经尝试了一切,从用 .self 更改 .id ,但没有任何效果。
大家有什么想法吗?谢谢你!
编辑:看起来是我的工作表阻止了我的视图更新,我尝试简单地在我的视图中添加工作表代码,现在 ForEach 实时更新,关于工作表如何进入视图,我是否缺少一些东西方式?
struct AnswersView: View {
@EnvironmentObject var vm: BrainstormViewModel
@Environment(\.presentationMode) var presentationMode
@State var mBIndex: Int
@State var substitute: [String] = []
@State var showSheet: Bool = false
@State var updater: Bool = false
var body: some View {
ScrollView {
VStack(alignment: .leading) {
Text("How could I...")
Text(vm.brainstormArray[mBIndex].title)
.font(.system(size: 32, weight: .bold, design: .rounded))
.multilineTextAlignment(.leading)
Button {
showSheet.toggle()
} label: {
ButtonSubview(icon: "play.fill", text: "Continue brainstorm")
.environmentObject(BrainstormViewModel())
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试重新创建 Duolingo 在其应用程序中使用的形状样式:

但由于笔画重叠,我一直在尝试组合两个形状:

这是我当前的代码:
HStack{
Rectangle()
.fill(Color.white)
.frame(width: 20, height: 20, alignment: .center)
.overlay(
RoundedRectangle(cornerRadius: 6)
.stroke(Color.gray, lineWidth: 3)
)
.rotationEffect(Angle(degrees: 45))
.offset(x: 18, y: 15)
VStack(alignment: .leading, spacing: 0, content: {
// MARK: USER NAME
// Text(comment.username)
// .font(.caption)
// .foregroundColor(.gray)
// MARK: CONTENT
Text(comment.content)
.padding(.all, 10)
.foregroundColor(.primary)
.background(Color.white)
})
.background(Color.primary)
.frame(width: .infinity)
.frame(maxWidth: .infinity, minHeight: 50)
.overlay(
RoundedRectangle(cornerRadius: 16)
.stroke(Color.gray, lineWidth: 3)
.frame(maxWidth: .infinity - 50, minHeight: 50)
)
Run Code Online (Sandbox Code Playgroud)
}
有任何想法吗?
谢谢!!