【发布时间】:2014-06-03 07:39:08
【问题描述】:
我试图在操场上创建一个UILabel,但失败了。 Playground 目前是否只支持 OS X 开发?
【问题讨论】:
标签: uikit swift swift-playground
我试图在操场上创建一个UILabel,但失败了。 Playground 目前是否只支持 OS X 开发?
【问题讨论】:
标签: uikit swift swift-playground
是的,确实如此!
文件:新建 > 文件... > iOS > 源代码 > Playground
import UIKit
let lbl = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 100))
lbl.text = "Hello StackOverflow!"
然后,保存文件。 (或者手动运行它。)这将触发 Playground 来解释 UI 相关的东西。此时,“UILabel”一词应出现在右侧。
现在,要实际查看您所做的工作,您必须点击右侧的“快速查看”眼睛,或在助理编辑器中打开白色圆圈:
这是 UIImage 工作等的一些基本内容的屏幕截图。
(编辑:对当前 CGRect 语法的小文本更新——但是,屏幕截图仍然显示旧语法。)
【讨论】:
Edited@2014-11-13:似乎新的 xcode 6 已修复此问题。
不,它没有。但值得注意的是,您可以导入 UIKit。
如果你想导入 UIKit,你可以这样做:
然后你可以为 iOS 导入 UIKit 或一些模块
ps。我尝试创建一个 UIImageView 但它没有在右侧显示正确的图像。导入 UIKit 似乎一文不值
【讨论】:
在 Xcode 7 中,现在您无法使用 Quick Look 来查看 UIView 的外观。
改为使用Assistant Editor 和:
XCPlaygroundPage.currentPage.liveView = sampleView
像这样:
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!"
}
【讨论】:
在 Xcode 8 中,XCPlaygroundPage.currentPage.liveView 已弃用。相反,使用
import PlaygroundSupport
PlaygroundPage.current.liveView = view
【讨论】:
按 CMD+Option+1 并将平台更改为 iOS,这将允许您导入 UIKit。
【讨论】:
我发现我可以在 IOS 项目中添加一个新的 Playground 文件,并在该文件中导入 UIKit。
【讨论】:
请使用Command (⌘) + Option(⌥) + 1组合从操场上的OSX切换到iOS平台使用UIKit。
【讨论】:
按 Option+Cmd+1 并在平台设置中选择 iOS。然后就可以导入UIKit来玩啦~
【讨论】:
是的,它似乎还不支持 UIkit。
更新: 当我在 2014 年写这个答案时,它不支持 UIKit,现在它支持了。留作历史参考
编辑: 其实上面的答案是不正确的。
您可以创建 iOS 项目并在该项目中添加新的 .playground 文件。然后你可以导入 UIkit 或其他 iOS 特定的框架。
【讨论】: