Does swift playground support UIKit? Does swift playground support UIKit? swift swift

Does swift playground support UIKit?


YES, it does!

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

import UIKitlet lbl = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 100))lbl.text = "Hello StackOverflow!"

Then, save the file. (Or manually run it.) This will trigger the Playground to interpret UI related things. At this point, the word "UILabel" should appear on the right-hand side.

ios playground quickview

Now, to actually view what you've done, you've got to click on the "Quick View" eye on the right, or the white circle to open it in Assistant Editor:

Here's a screenshot of some basic things with UIImage working, etc.ios playground example

(EDIT: minor text update to current CGRect syntax -- But, screenshots still show old syntax.)


Edited@2014-11-13: It seems the new xcode 6 had fixed this.

NO, It doesn't. But it's worth noting that you can import UIKit.

If you want to import UIKit you cound follow this:

  1. View -> Utilities -> Show File Inspector (opt + cmd + 1)
  2. On the right side of Xcode Change “Playground Settings -> Platform” from OS X to iOS

then you could import UIKit or some module for iOS

ps. I try to create a UIImageView but it doesn't show the correct image on the right side. It seem worthless to import UIKit


In Xcode 7, now you can't use the Quick Look to see the appearance of a UIView.

Instead, use the Assistant Editor and:

XCPlaygroundPage.currentPage.liveView = sampleView

Like this:

import XCPlaygroundimport UIKitXCPlaygroundPage.currentPage.needsIndefiniteExecution = true// Simulate User Interaction, not available in Xcode 7.2func 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 = 20let view = UIView(frame: CGRect(x: 0, y: 0, width: 375, height: 667)) // iPhone 6 proportionsview.backgroundColor = UIColor.grayColor()// LABELlet label = UILabel(frame: CGRect(x: leftMargin, y: 5, width: 300, height: 44))label.text = "Hello, playground"label.textColor = UIColor.whiteColor()view.addSubview(label)// TEXTFIELDlet 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 = trueview.addSubview(textField)XCPlaygroundPage.currentPage.liveView = viewdelay(1.0) { () -> () in    textField.text = "New text!"}