在我的Swift游乐场中,我输入以下代码来测试实时视图功能:
let view = UIView()
PlaygroundPage.current.liveView = view
但由于某些原因,实时视图不会显示在“助理编辑器”的右侧。最初我以为Xcode没有跑完游乐场。但我等待并等待它仍然没有表现出来。
任何帮助?
答案 0 :(得分:24)
我有同样的问题。我找到了一个临时解决方案。
我注意到如果我打开了多个Xcode项目,就会导致此错误。所以只需完全退出xcode(命令Q),只打开你正在尝试的实时游乐场,它应该可以工作。
确保您拥有以下导入,并且您可能希望为其提供框架和颜色,以确保它实际正常工作,因为您的视图没有框架或颜色。这段代码适合我。
import UIKit
import PlaygroundSupport
let view = UIView()
view.backgroundColor = .white
view.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
PlaygroundPage.current.liveView = view
答案 1 :(得分:12)
在Xcode 9.0中以及:
PlaygroundPage.current.needsIndefiniteExecution = true
您必须手动打开助理编辑器,然后当前焦点的游乐场将显示UIView。
答案 2 :(得分:7)
我也有同样的问题,以下代码行为我修复了它:
PlaygroundPage.current.needsIndefiniteExecution = true
设置实时视图应该为您自动启用它,但对我来说它并没有这样做。必须是Xcode中的错误。
答案 3 :(得分:1)
将UIView设置为实时视图仅对iPad游乐场有效,而对Xcode无效。
要使视图出现在Xcode 9和10游乐场中,我将其包装到一个视图控制器中,并将其设置为实时取景(就像默认的单视图游乐场一样):
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
override func loadView() {
let view = UIView()
view.backgroundColor = .white
self.view = view
}
}
PlaygroundPage.current.liveView = MyViewController()
答案 4 :(得分:1)
我是能够预览的ViewController认为仅明确地留下控制器在游乐场代码这样的观点:
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
// ...
}
let controller = MyViewController()
PlaygroundPage.current.liveView = controller
controller.view // <- to the far right of this line in editor you'll be able to expand and see result
答案 5 :(得分:0)