xcode - Xcode 12.3 将任何新内容放入新预览中
问题描述
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello")
Text("World")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
上面的代码产生了两个预览窗口:一个带有文本“Hello”,第二个窗口包含“World”
每次我添加诸如 Text() 之类的东西时,它都会出现在第二个预览窗口中。添加更多元素会自动导致新的预览窗口。PreviewProvider 中的代码保持不变,因此它不是重复的预览,它只是每个元素的单独预览......
我尝试重新启动 Xcode,更改模拟器设备,创建新项目 - 没有任何变化。
它是在我在一个项目中添加重复预览后开始的,然后通过删除 PreviewProvider 中的相应行将其删除。之后,所有新项目或旧项目中的所有新文件都显示出这种奇怪的行为。
解决方案
body
默认情况下是SwiftUI 2.0 中的a @ViewBuilder
,所以它只是内联生成一组视图,因此有两个 Text 元素你有两个预览。如果你只想要一个预览,你body
应该有一个顶视图,比如
struct ContentView: View {
var body: some View {
HStack {
Text("Hello")
Text("World")
}
}
}
推荐阅读
- wso2 - 在 WSO2 ESB 6.6.0 更新密钥库后,是否有可能避免服务器重启?
- python - 有没有其他方法可以解决这个问题?
- c# - 多个表相同的字段LINQ
- linux - 后端倍数 apache 2.4 如何同步设置虚拟主机
- java - 如何在java中检查cassandra数据库表是否有数据
- ios - 直接点击按钮打开 DatePicker 弹出窗口
- azure - Microsoft Endpoint Manager (Intune) 中的重命名操作不起作用
- php - 将文件上传到 API 端点 Laravel
- elasticsearch - 在 Elasticsearch 中通过 API Rest 登录的应用程序的管理
- node.js - 在哪里保存通过 POST 上传的图像以及如何通过 GET 发送该图像