swift游乐场是否支持UIKit?

byd*_*sky 64 uikit swift swift-playground

我试图UILabel在操场上创建一个但失败了.操场现在只支持OS X开发吗?

Mec*_*han 75

是的,它确实!

File:New> File ...> iOS> Source> Playground

import UIKit
let lbl = UILabel(frame: CGRectMake(0, 0, 300, 100))
lbl.text = "Hello StackOverflow!"
Run Code Online (Sandbox Code Playgroud)

然后,保存文件.这将触发Playground解释与UI相关的事物.有时您可能需要折腾一个尾随的换行符并再次保存 - 它是一个测试版.此时,"UILabel"一词应出现在右侧.

ios游乐场快速浏览

现在,要实际查看您已完成的操作,您必须单击右侧的"快速查看"眼睛,或者单击白色圆圈以在"助理编辑器"中将其打开:

这是UIImage工作的一些基本内容的屏幕截图等. ios游乐场的例子

  • 操场一次分配到一个平台 - OS X或iOS.如果您无法导入UIKit,则可能是OS X.有关如何更改平台的说明,请参阅@ 6david9的答案. (13认同)
  • MechEthan,我按照你的指示创建了playgroud,只需输入你提供的代码,但是在导入UIKit后,playgroud甚至找不到UILabel.我必须导入UIKit.UILabel,然后它提示无法解决CGRectMake ......然后我尝试创建一个项目并在项目中添加一个新的playgroud.Xcode提示'马赫错误111 - 未知错误代码'在我打字时一次又一次,我甚至无法输入代码!我的Xcode版本6.0(6A215l). (3认同)

6da*_*id9 49

编辑@ 2014-11-13:似乎新的xcode 6修复了这个问题.

不,它没有.但值得注意的是,您可以导入UIKit.

如果您想导入UIKit,请按照以下步骤操作:

  1. 查看 - >实用程序 - >显示文件检查器(opt + cmd + 1)
  2. 在Xcode的右侧将"Playground Settings - > Platform"从OS X更改为iOS

那么你可以导入UIKit或iOS的一些模块

PS.我尝试创建一个UIImageView但它没有在右侧显示正确的图像.导入UIKit似乎毫无价值

  • 误导性答案!是的,它确实有效.请参阅下面的帖子. (3认同)

dua*_*uan 16

在Xcode 7中,现在你无法使用它Quick Look来看到一个外观UIView.

相反,使用Assistant Editor和:

XCPlaygroundPage.currentPage.liveView = sampleView
Run Code Online (Sandbox Code Playgroud)

像这样:

import XCPlayground
import UIKit

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

// Simulate User Interaction, not available in Xcode 7.2
func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}

let color = UIColor(red: 1, green: 1, blue: 0, alpha: 1)
let leftMargin = 20
let view = UIView(frame: CGRect(x: 0, y: 0, width: 375, height: 667)) // iPhone 6 proportions
view.backgroundColor = UIColor.grayColor()

// LABEL
let label = UILabel(frame: CGRect(x: leftMargin, y: 5, width: 300, height: 44))
label.text = "Hello, playground"
label.textColor = UIColor.whiteColor()
view.addSubview(label)

// TEXTFIELD
let textField = UITextField(frame: CGRect(x: leftMargin, y: 60, width: 300, height: 44))
textField.placeholder = "Edit me…"
textField.backgroundColor = UIColor(white: 1, alpha: 0.5)
textField.textColor = UIColor.whiteColor()
textField.userInteractionEnabled = true
view.addSubview(textField)

XCPlaygroundPage.currentPage.liveView = view

delay(1.0) { () -> () in
    textField.text = "New text!"
}
Run Code Online (Sandbox Code Playgroud)


Evg*_*lov 12

在Xcode 8 XCPlaygroundPage.currentPage.liveView中不推荐使用.相反,使用

import PlaygroundSupport 

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


小智 9

按CMD + Option + 1并将平台更改为iOS,这将允许您导入UIKit.


byd*_*sky 5

我发现我可以在IOS项目中添加一个新的操场文件,在该文件中我可以导入UIKit.


13t*_*ost 5

请使用Command (?) + Option(?) + 1组合从操场上的OSX切换到iOS平台以使用UIKit.


Vla*_*lad 5

最简单的解决方案: Xcode 9.2

  • 从一个新的单一视图游乐场开始:

在此处输入图片说明

  • 显示辅助编辑器:查看 -> 辅助编辑器 -> 显示辅助编辑器。

  • 干得好。默认情况下,您将看到打印的属性:label.text = "Hello World!"在实时视图窗口中