Живой просмотр в игровой площадке Xcode 8 не работает
В моей игровой площадке Swift я ввел следующий код, чтобы проверить функцию просмотра в реальном времени:
let view = UIView()
PlaygroundPage.current.liveView = view
Но по какой-то причине просмотр в реальном времени не отображается справа в редакторе помощника. Первоначально я думал, что Xcode не закончил работать на детской площадке. Но я ждал и ждал, и он все еще не показывает.
Снимок экрана:
![введите описание изображения здесь]()
Любая помощь?
Ответы
Ответ 1
У меня была такая же самая точная проблема. Я нашел временное решение.
Я заметил, что если бы я открыл более одного проекта 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]()
Ответ 2
В Xcode 9.0, а также:
PlaygroundPage.current.needsIndefiniteExecution = true
Вам нужно вручную открыть редактор ассистента, тогда игровая площадка с текущим фокусом покажет UIView.
Ответ 3
У меня была такая же проблема, и следующая строка кода исправила это для меня:
PlaygroundPage.current.needsIndefiniteExecution = true
Настройка просмотра в реальном времени должна автоматически активировать его для вас, но для меня это не было сделано. Должна быть ошибка в Xcode.
Ответ 4
Установка UIView в качестве живого просмотра работала только для меня на игровых площадках iPad, но не в Xcode.
Чтобы представление появилось на игровой площадке Xcode 9 & 10, я обернул его в контроллер представления и установил вместо него режим живого просмотра (точно так же, как и на игровой площадке по умолчанию с одним видом):
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
override func loadView() {
let view = UIView()
view.backgroundColor = .white
self.view = view
}
}
PlaygroundPage.current.liveView = MyViewController()
Ответ 5
Я смог предварительно просмотреть представление viewcontroller, только явно оставив представление контроллера в коде игровой площадки следующим образом:
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