SwiftUI添加onTapGesture后Xcode预览失败、模拟器白屏如何解决?
问题根因
- 代码存在语法错误:
CardView结构体中,ZStack后的onTapGesture修饰符前缺少.前缀。SwiftUI的所有视图修饰符都需要以点开头调用,缺少点会导致编译不通过,进而触发Xcode预览失效、模拟器运行白屏的问题。
修复后完整代码
struct ContentView: View { var body: some View { HStack{ CardView() CardView() CardView() CardView() } .foregroundColor(.orange) .padding(.horizontal) } } struct CardView:View { @State var isFaceUp:Bool = false var body: some View { ZStack{ let shape = RoundedRectangle(cornerRadius: 20) if isFaceUp { shape.stroke(lineWidth: 3) Text("🧞♂️").font(.largeTitle) } else{ shape.fill() } } // 此处添加了.前缀 .onTapGesture { isFaceUp = !isFaceUp } } }
修复后效果
- 重新编译项目后Xcode预览可正常加载,点击卡片会正确切换正反面状态,模拟器也不会再出现白屏问题。
内容的提问来源于stack exchange,提问作者yleyver
相关产品推荐
相关产品推荐

