Xcode 8 playground live view не работает

в моей Swift playground я ввел следующий код для проверки функции live view:

let view = UIView()

PlaygroundPage.current.liveView = view

но по какой-то причине live view не отображается справа в помощнике редактора. Первоначально я думал, что Xcode не закончил работу на игровой площадке. Но я все ждал и ждал, а он все не показывался.

скриншот: enter image description here

помочь?

4 ответов


У меня была такая же проблема. Я нашел временное решение.

Я заметил, что если бы я открыл более одного проекта 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


в Xcode 9.0 а также:

PlaygroundPage.current.needsIndefiniteExecution = true

вы должны вручную открыть помощник редактора, то площадка с текущим фокусом покажет UIView.


У меня была такая же проблема, и следующая строка кода исправила ее для меня:

PlaygroundPage.current.needsIndefiniteExecution = true

настройка live view должна автоматически включить его для вас, но для меня это не так. Должна быть ошибка в Xcode.


установка UIView как live view работала только для меня на игровых площадках iPad, но не в Xcode.

чтобы представление появилось в Xcode 9 & 10 playground, я завернул его в контроллер вида и установил, что вместо этого он будет жить (как и игровая площадка по умолчанию):

import UIKit
import PlaygroundSupport

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

PlaygroundPage.current.liveView = MyViewController()