web-dev-qa-db-ja.com

Swift playgroundはUIKitをサポートしていますか?

遊び場でUILabelを作成しようとしましたが、失敗しました。プレイグラウンドは、現時点ではOS X開発のみをサポートしていますか?

64
bydsky

はい、そうです!

ファイル:新規>ファイル...> iOS>ソース>プレイグラウンド

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

次に、saveファイル。これにより、プレイグラウンドがトリガーされ、UI関連のものが解釈されます。場合によっては、末尾の改行を投げて再度保存する必要があるかもしれません-そのベータ版です。この時点で、単語「UILabel」が右側に表示されます。

ios playground quickview

さて、実際に行ったことを実際に表示するには、右側の「クイックビュー」の目、またはアシスタントエディターで開くために白い円をクリックする必要があります。

UIImageが動作するなどの基本的なもののスクリーンショットを次に示します。 ios playground example

75
MechEthan

Edited @ 2014-11-13:新しいXcode 6がこれを修正したようです。

いいえ、そうではありません。ただし、can UIKitをインポートすることに注意してください。

UIKitをインポートする場合は、次のようにします。

  1. 表示->ユーティリティ->ファイルインスペクターを表示(opt + cmd + 1)
  2. Xcodeの右側で、「プレイグラウンド設定->プラットフォーム」をOS XからiOSに変更します

次に、UIKitまたはiOS用のモジュールをインポートできます

追伸UIImageViewを作成しようとしましたが、右側に正しい画像が表示されません。 UIKitをインポートする価値はないようです

48
6david9

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

Xcode 8ではXCPlaygroundPage.currentPage.liveViewは非推奨です。代わりに、使用します

import PlaygroundSupport 

PlaygroundPage.current.liveView = view
12

CMD + Option + 1を押してプラットフォームをiOSに変更すると、UIKitをインポートできます。

9
user3630017

IOSプロジェクトに新しいプレイグラウンドファイルを追加でき、そのファイルにUIKitをインポートできることがわかりました。

5
bydsky

uIKitを使用するには、Command (⌘) + Option(⌥) + 1の組み合わせを使用して、プレイグラウンドでOSXからiOSプラットフォームに切り替えてください。

5
13th Ghost

Option + Cmd + 1を押して、プラットフォーム設定でiOSを選択します。その後、UIKitをインポートして再生できます〜

3
onevcat

最も簡単な解決策:Xcode 9.2

  • 新しいシングルビュープレイグラウンドから始めます。

enter image description here

  • アシスタンスエディターの表示:[表示]-> [アシスタンスエディター]-> [アシスタンスエディターの表示]。

  • どうぞ。デフォルトでは、印刷されたプロパティが表示されます:label.text = "Hello World!"ライブビューウィンドウ

2
Vlad