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
中开启实时取景
在我的 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
中开启实时取景