web-dev-qa-db-ja.com

Xcode 8プレイグラウンドライブビューが機能しない

Swift playground)で、ライブビュー機能をテストするために次のコードを入力しました。

let view = UIView()

PlaygroundPage.current.liveView = view

しかし、何らかの理由で、ライブビューがアシスタントエディターの右側に表示されません。最初は、Xcodeがプレイグラウンドの実行を終了していないと思っていました。しかし、私は待って待ったが、それはまだ表示されません。

スクリーンショット: enter image description here

助けがありますか?

11
Blip

これとまったく同じ問題がありました。一時的な解決策を見つけました。

私が気づいたのは、複数のXcodeプロジェクトを開くと、このエラーが発生することです。したがって、xcode(コマンドQ)を完全に終了し、作業しようとしているライブプレイグラウンドのみを開くと、動作するはずです。

次のインポートがあることを確認し、ビューにフレームまたは色がないため、実際に機能することを確認するために、フレームと色を指定することをお勧めします。このコードは私のために機能します。

import UIKit
import PlaygroundSupport

let view = UIView()
view.backgroundColor = .white
view.frame = CGRect(x: 0, y: 0, width: 100, height: 100)

PlaygroundPage.current.liveView = view

playground live view

24
maxcodes

Xcode 9.0では、次のものが必要です。

PlaygroundPage.current.needsIndefiniteExecution = true

アシスタントエディタを手動で開く必要があります。そうすると、現在フォーカスがあるプレイグラウンドにUIViewが表示されます。

12
ReaddyEddy

私も同じ問題を抱えており、次のコード行で修正されました。

PlaygroundPage.current.needsIndefiniteExecution = true

ライブビューを設定すると、自動的に有効になりますが、私にとってはそうではありませんでした。 Xcodeのバグでなければなりません。

7
Jacob Caraballo

ViewControllerのビューをプレビューすることができたのは、次のようなPlaygroundコードでControllerのビューを明示的に残しただけです。

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
    // ...
}

let controller = MyViewController()
PlaygroundPage.current.liveView = controller
controller.view // <- to the far right of this line in editor you'll be able to expand and see result
2

UIViewをライブビューとして設定することは、iPadのプレイグラウンドでのみ機能し、Xcodeでは機能しませんでした。

ビューをXcode 9および10プレイグラウンドに表示するには、View Controllerにラップし、代わりにライブビューに設定します(デフォルトのシングルビュープレイグラウンドと同じように)。

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
    override func loadView() {
        let view = UIView()
        view.backgroundColor = .white
        self.view = view
    }
}

PlaygroundPage.current.liveView = MyViewController()
2
ViktorCode