Xcode 8 游乐场实时取景不工作

Xcode 8 playground live view doesn't work

在我的 Swift playground 中,我输入了以下代码来测试实时取景功能:

let view = UIView()

PlaygroundPage.current.liveView = view

但由于某些原因,实时视图不会显示在助理编辑器的右侧。一开始我还以为Xcode没玩完运行操场。但是我等了又等,它仍然没有显示。

截图:

有什么帮助吗?

我遇到了同样的问题。我找到了一个临时解决方案。

我注意到,如果我打开多个 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

我也遇到了同样的问题,下面的代码行为我解决了这个问题:

PlaygroundPage.current.needsIndefiniteExecution = true

设置实时取景应该会为您自动启用它,但对我来说并没有这样做。一定是 Xcode.

中的错误

在 Xcode 9.0 中还有:

PlaygroundPage.current.needsIndefiniteExecution = true

您必须手动打开辅助编辑器,然后当前焦点所在的 playground 才会显示 UIView。

将 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()

我能够预览 viewcontroller 的视图,但只能在 playground 代码中明确留下控制器的视图,如下所示:

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

对于一些过来的用户,您可能需要在XCode

中开启实时取景