iOS Playground不显示UI预览

Lub*_*bbo 56 xcode uikit ios swift swift-playground

我用XCode 7.1创建了一个简单的游乐场,我输入了这个简单的代码:

import UIKit 
import XCPlayground 

var str = "Hello, playground" 

let color = UIColor (red: 1 , green: 1 , blue: 0 , alpha: 0 ) 

let view = UIView() 
view.backgroundColor = UIColo (colorLiteralRed: 1 , green: 0 , blue: 0 , alpha: 0 ) 

view.frame = CGRect (x: 0 ,y: 0 ,width: 100 ,height: 100 ) 

let label = UILabel (frame: CGRect (x: 5 , y: 5 , width: 50 , height: 20 )) 

label.text = str 

view.addSubview(label) 
Run Code Online (Sandbox Code Playgroud)

当游乐场运行时,它不显示UIKit对象预览,而只显示调试信息:

操场

我究竟做错了什么?

dua*_*uan 155

打开预览面板:查看>助理编辑器>显示助理编辑器

然后在你的代码中:

import PlaygroundSupport
PlaygroundPage.current.liveView = view
Run Code Online (Sandbox Code Playgroud)

不要忘记给你的视图一个可见的框架.


Ps:在Xcode 9之后,你可以用默认视图创建一个游乐场

操场

  • ```PlaygroundPage.current.liveView = view```会在助理编辑器窗格中显示一个黑色方块.但是,里面没有"你好的游乐场"......: - / (3认同)

Dun*_*n C 31

接受的答案是屏幕截图,而不是内联代码,它显示了如何在Xcode 8之前执行此操作,因此我认为这不是一个好的答案.

这是Xcode 8的更新答案:

有几个步骤:

您需要导入PlaygroundSupport

import PlaygroundSupport
Run Code Online (Sandbox Code Playgroud)

您需要将PlaygroundPage.current.needsIndefiniteExecution设置为true:

PlaygroundPage.current.needsIndefiniteExecution = true
Run Code Online (Sandbox Code Playgroud)

您需要将要显示的视图层次结构添加到liveView:

PlaygroundPage.current.liveView = container
Run Code Online (Sandbox Code Playgroud)

整个游乐场可能看起来像这样:

import UIKit
import PlaygroundSupport

let container = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
let view = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
view.backgroundColor = UIColor.red
container.addSubview(view)

PlaygroundPage.current.liveView = container
PlaygroundPage.current.needsIndefiniteExecution = true
Run Code Online (Sandbox Code Playgroud)

最后,您需要查看刚刚创建的实时视图.在我的Xcode 8(发行版)副本上如果我尝试选择视图菜单>助理编辑器> Show Assistant Editor Xcode每次崩溃.

我必须将鼠标悬停在屏幕右侧的代码右侧框中,在我创建容器视图的行上.我看到一个小眼睛图标,如果我点击它,它会显示实时视图而不会崩溃.

  • 默认情况下,`needsIndefiniteExecution`属性为true (2认同)

Dev*_*ist 13

对于那些遇到问题的人来说,助理编辑不做任何事情(对我而言,这只是空白),这就是我解决问题的方法.

  1. 使用该代码进行测试:https://stackoverflow.com/a/33543820/4572536(从上面接受回答)

  2. View -> Assistent Editor -> Assistent Editors on Bottom (或任何其他选择)

后者将触发Xcode重绘视图.

注意:我正在分享这个可能的解决方法,因为对我来说,即使在完全重新启动系统后,我的Xcode也没有绘制视图.我不知道如何重现这个问题,但是如果碰巧碰到它,你可以试试这个解决方法.


cod*_*tte 8

除了语法之外,我还发现了另一个技巧,可以在我的情况下将实时视图恢复显示(Xcode 8.2.1 Swift 3.0).这也许是Xcode中的一个小错误.只需单击助理编辑器顶部的+按钮即可.因为有时您的助理编辑器会显示您文件的界面文件并拒绝自动显示实时页面.

在此输入图像描述