1

我正在尝试使用以下代码在 iPad Playgrounds 中显示这个简单的 ViewController:

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
override func viewDidLoad() {
    super.viewDidLoad()
    setupViews()
}

func setupViews() {
    let view1 = UIView(frame: CGRect(x: 0, y: 0, width: view.frame.width/2, height: 100))
    view1.backgroundColor = .red
    view.addSubview(view1)
}
}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()

您可以看到,即使它为 View1 的框架显示 view.frame.width/2,视图仍然看起来像这样:

在此处输入图像描述

怎么了?谢谢你。

4

2 回答 2

1

这是让它工作的方法

这是我使用的解决方案,它可以正常工作。在 Swift Playgrounds 中,布局是在viewDidLayoutSubview方法中创建的,因此所有帧都应该在那里创建。

于 2019-03-19T06:03:59.427 回答
0

初始化 ViewController 后,您可以设置首选大小:

import UIKit
import PlaygroundSupport

class VC: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        setupViews()
    }

    func setupViews() {
        let view1 = UIView(frame: CGRect(x: 0, y: 0, width: view.frame.width/2, height: 100))
        view1.backgroundColor = .red
        view.addSubview(view1)
    }
}

let vc = VC()
vc.preferredContentSize = CGSize(width: 768, height: 1024)

PlaygroundPage.current.liveView = vc

具有首选内容大小的游乐场

没有首选内容大小的游乐场

于 2019-03-19T04:13:43.463 回答