【问题标题】:Does swift playground support UIKit?Swift Playground 支持 UIKit 吗?
【发布时间】:2014-06-03 07:39:08
【问题描述】:

我试图在操场上创建一个UILabel,但失败了。 Playground 目前是否只支持 OS X 开发?

【问题讨论】:

    标签: uikit swift swift-playground


    【解决方案1】:

    是的,确实如此!

    文件:新建 > 文件... > 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 语法的小文本更新——但是,屏幕截图仍然显示旧语法。)

    【讨论】:

    • MechEthan,我按照您的说明创建了 playgroud,只需键入您提供的代码,但是在我导入 UIKit 后,playgroud 甚至找不到 UILabel。我必须导入UIKit.UILabel,然后提示can't resolve CGRectMake ......然后我尝试创建一个项目并在项目中添加一个新的playgroud。 Xcode 在我打字时一次又一次地提示'Mach error 111 - unknown error code',我什至不能输入代码!我的 Xcode 版本 6.0 (6A215l)。
    • @6david9 很奇怪,我无法重现您的错误。我刚刚使用 Swift 作为语言创建了一个新的 iOS 项目,添加了一个新的 Playground 文件并输入了我的 UILabel 代码,没有错误/问题。我确实必须进行“构建”才能让“UILabel”出现在正确的托盘中。 Xcode 6.0 (6A215l) -- 试试重启吧??我很茫然!
    • 一个 Playground 一次被分配到一个平台 - OS X 或 iOS。如果您无法导入 UIKit,您可能使用的是 OS X。有关如何更改平台的说明,请参阅@6david9 的答案。
    • 很棒的答案,为掠夺者/格劳格 +1。
    【解决方案2】:

    Edited@2014-11-13:似乎新的 xcode 6 已修复此问题。

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

    如果你想导入 UIKit,你可以这样做:

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

    然后你可以为 iOS 导入 UIKit 或一些模块

    ps。我尝试创建一个 UIImageView 但它没有在右侧显示正确的图像。导入 UIKit 似乎一文不值

    【讨论】:

    • David,虽然当事情不符合您的预期时提交错误总是值得的,但测试版的发行说明指定了一些使用高级工具(例如 OpenGL)进行渲染的 UIKit 元素本身,将无法在 iOS 操场上正确显示。 OSX 游乐场不应该遇到同样的问题。但是,无论如何,请提交一个错误。
    • 误导性答案!是的,它确实有效。请参阅下面的帖子。
    • 如果我或我的 Xcode 有任何磨损,我不会,当我尝试 stpe 1 时。(查看 -> 实用程序 -> 显示文件检查器(opt + cmd + 1)。我什么也没发生. :(
    • 1.你用游乐场吗? 2. 如果是这样,请单击操场窗口的右上角按钮,选择文件检查器(或 opt + cmd+ 1)。 @iOS_Developer
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      在 Xcode 8 中,XCPlaygroundPage.currentPage.liveView 已弃用。相反,使用

      import PlaygroundSupport 
      
      PlaygroundPage.current.liveView = view
      

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          我发现我可以在 IOS 项目中添加一个新的 Playground 文件,并在该文件中导入 UIKit。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

              最简单的解决方案: Xcode 9.2

              • 从一个新的 Single View Playground 开始:

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

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

              【讨论】:

                【解决方案9】:

                按 Option+Cmd+1 并在平台设置中选择 iOS。然后就可以导入UIKit来玩啦~

                【讨论】:

                  【解决方案10】:

                  是的,它似乎还不支持 UIkit。

                  更新: 当我在 2014 年写这个答案时,它不支持 UIKit,现在它支持了。留作历史参考

                  编辑: 其实上面的答案是不正确的。

                  您可以创建 iOS 项目并在该项目中添加新的 .playground 文件。然后你可以导入 UIkit 或其他 iOS 特定的框架。

                  【讨论】:

                  • @MJN,我会让用户自己决定答案。如果您不同意,请投票。
                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-08-13
                  • 2017-07-09
                  • 2018-06-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多