view.addSubview (:) Не работает на быстрых игровых площадках - PullRequest
0 голосов
/ 13 марта 2019

У меня есть быстрая игровая площадка, и я создал UIButton под названием «startButton».

У меня есть функция, которая устанавливает параметры UIButton.


    func setupStartButton() {
        startButton.frame = CGRect(x: 15, y: 550, width: 125, height: 50)
        startButton.backgroundColor = UIColor(ciColor: CIColor(red: 255/255, green: 0/255, blue: 77/255, alpha: 1.0))
        startButton.layer.cornerRadius = 20
        startButton.setTitle("Start", for: .normal)
        startButton.setTitleColor(.white, for: .normal)
        startButton.addTarget(self, action: #selector(startButtonPressed), for: .touchUpInside)
        view.addSubview(startButton)
    }

Я вызываю это в viewDidLoad


    override func viewDidLoad() {
        let view = UIView(frame: CGRect(x: 0, y: 0, width: 524, height: 766))
        view.backgroundColor = .white

        setupStartButton()

        PlaygroundPage.current.liveView = view
        PlaygroundPage.current.needsIndefiniteExecution = true
    } 

Когда я запускаю игровую площадку, она нене показывать кнопку.
Как мне показать кнопку.
Спасибо

1 Ответ

1 голос
/ 14 марта 2019

Вы устанавливаете PlaygroundPage.current.liveView для локального view, созданного в viewDidLoad.Это не то же самое представление контроллера представления, к которому вы добавляете кнопку в setupStartButton.

. Я бы удалил строку let view = UIView(frame: CGRect(x: 0, y: 0, width: 524, height: 766)), тогда каждая ссылка на view будет представлениемпредставление контроллера.

Вы должны удалить код игровой площадки из метода viewDidLoad.После класса контроллера представления вы можете создать экземпляр контроллера представления и настроить игровую площадку:

Что-то вроде:

class MyViewController: UIViewController {
    // your code
}

PlaygroundPage.current.liveView = MyViewController()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...