view.addSubview(:)在快速操场上不工作

时间:2019-03-13 20:48:44

标签: ios swift uiview

我有一个快速的游乐场,并且创建了一个名为“ startButton”的UIButton。

我有一个用于设置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 个答案:

答案 0 :(得分:1)

您正在将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()