我正在尝试从 Xcode 11 运行新的 Canvas 功能,但 Canvas 不会出现。我究竟做错了什么?
我刚刚创建了一个新的默认项目(单视图应用程序),对其进行编译并激活了“编辑器 > 编辑器和画布”。我可以导航到项目中的每个文件,没有任何显示。
还需要做什么?
您需要使用Catalina macOS 版本(10.15),如官方教程中所述
注意:Catalina 不支持 32 位应用程序,一些旧应用程序在更新后将停止工作。
您仍然可以在操场上看到实时视图(未安装 Catalina)。使用UIHostingController
.
import UIKit
import SwiftUI
import PlaygroundSupport
struct ContentView : View {
var body: some View {
Text("Hello World")
.foregroundColor(Color.blue)
}
}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = UIHostingController.init(rootView: ContentView())
根据Apple的官方教程,进一步添加其他答案:
要在 Xcode 中预览画布中的视图并与之交互,请确保您的 Mac 运行的是 macOS 10.15 beta。
不幸的是,由于测试版刚刚发布,我现在无法运行它,而且我没有备用 Mac!
我尝试了所有这些步骤,但后来意识到我的文件中没有我的PreviewProvider
设置。没有这个,预览将不会显示。
确保你有这样的设置:
struct YourView_Previews: PreviewProvider {
static var previews: some View {
YourView()
}
}
然后,您可以按照此线程中其他答案的建议进行操作,您的画布窗口应该会立即弹出。
复制swift文件的内容,
将文件移至回收站
再次创建 swift 文件
粘贴并运行您的代码
如果您将 swiftUI 文件移动到新文件夹,画布将不会出现,最好的解决方案是复制文件中的所有代码,然后将文件删除到垃圾箱中,然后创建一个新文件并粘贴您的代码
脚步:
复制文件代码
删除文件
创建一个同名的新文件
将代码传递到新文件
如果您将 Xcode 升级到更高的 beta 版本并在此过程中收到以下错误消息,则可能会出现这种情况:
加载插件失败
无法加载路径“/Applications/Xcode-beta.appDownloads/Xcode-beta.app/Contents/PlugIns/UVKit.framework”的插件“com.apple.dt.UVKit”。插件或其必备插件之一可能丢失或损坏。插件或其必备插件之一可能丢失或损坏,可能需要重新安装。
解决方案似乎是将Catalina beta版本升级到相同级别。这是 Apple Beta 软件下载的链接。
您必须至少安装 macOS 版本(10.15 或更高版本)
此外,请确保在您的 SwiftUI 文件中调用此函数(在实际View
结构之外)。
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView() // Initialize your struct
}
}
除了运行 MacOS Catalina [beta] 之外,您似乎还需要安装命令行工具,否则它会失败并“暂停”画布(这发生在 Xcode 11 Beta 2 中)。要安装它们,请运行:
xcode-select --install
一些重要的清单,请一一检查。如果这一切都完成了,您可以轻松获得“编辑器和画布”选项。
您的 MacOS 版本等于或高于 10.15
您至少使用 Xcode 11 Beta 或更高版本。如果您有 Xcode 11 但您的 MacOS 低于 10.15 ,您将无法看到该选项。
从终端运行命令:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
接着
sudo xcodebuild -license
大多数时候,选项 4 是问题所在。
对 Xcode 为SwiftUI
画布提供的功能感到沮丧(以及它没有告诉您您需要升级到 Catalina 才能使用此功能),我决定创建自己的工具:QDesigner
. 这是一款 iPad 应用程序,您可以在其中简单地在 iPhone 画布上拖放SwiftUI
控件,轻点几下对其进行自定义,SwiftUI
轻点一下即可生成代码。无需 Xcode。
QDesigner
可通过 TestFlight 获得第一个 Beta :
https ://testflight.apple.com/join/aSXW5tVp
还有一个QDesigner Client
适用于 iPhone 的配套应用程序,可以连接QDesigner
在 iPad 上运行,以在目标设备上查看您的 UI 设计,实时更新:
https ://testflight.apple.com/join/DQv0DBJU
我希望它至少对你们中的一些人有所帮助!让我知道您的想法,当然还有大量工作要使其功能齐全,但第一个测试版已经对基本SwiftUI
使用有益。
通过访问网站查看演示视频QDesigner
并了解更多信息:
https ://Q-Mobile.IT/Q-Designer
要在 Xcode 中预览画布中的视图并与之交互,请确保您的 Mac 运行的是MacOS 10.15 beta。
SwiftUI 开发工具仅在 macOS 10.15 beta 上运行时可用。
https://developer.apple.com/tutorials/swiftui/creating-and-combining-views