Does swift playground support UIKit?

こ雲淡風輕ζ 提交于 2019-12-17 17:34:59

问题


I tried to create a UILabel in playground but failed. Does playground only support OS X development for now?


回答1:


YES, it does!

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

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

Then, save the file. This will trigger the Playground to interpret UI related things. Sometimes you may need to toss in a trailing newline and save again -- its a beta. At this point, the word "UILabel" should appear on the right-hand side.

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.




回答2:


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




回答3:


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 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!"
}



回答4:


In Xcode 8 XCPlaygroundPage.currentPage.liveView is deprecated. Instead, use

import PlaygroundSupport 

PlaygroundPage.current.liveView = view



回答5:


Press CMD+Option+1 and change the platform to iOS, this will allow you to import UIKit.




回答6:


I found I could add a new playground file in IOS project, and in that file I can import UIKit.




回答7:


please use Command (⌘) + Option(⌥) + 1 combination to switch to iOS platform from OSX in playground to use UIKit .




回答8:


Press Option+Cmd+1 and choose iOS in the Platform setting. Then you can import UIKit and play~




回答9:


Most simple solution: Xcode 9.2

  • Start with a new Single View playground:

  • show Assistance Editor: View -> Assistance Editor -> Show Assistance Editor.

  • here you go. By default you will see printed property: label.text = "Hello World!" in the Live View window




回答10:


Yeah looks like it doesn't support UIkit yet.

Edit: Actually above answer is incorrect.

You can create iOS project and add new .playground file inside that project. Then you can import Uikit or another iOS specific framework.



来源:https://stackoverflow.com/questions/24009598/does-swift-playground-support-uikit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!