UIView在游乐场

时间:2016-08-08 03:27:18

标签: swift uiview swift-playground

我已经定义了两种不同的视图,如 -

第一种方法:

let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 375.0, height: 667.0))
containerView.backgroundColor = UIColor.redColor()

我可以看到矩形。

第二种方法:

let view = UIView()
view.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
view.backgroundColor = UIColor.blueColor()

我看到一些日志消息,如输出。

为什么两者都提供不同的输出?

网络上的一些教程使用第一种方法,第二种方法使用第二种方法。

这是图片。

enter image description here

1 个答案:

答案 0 :(得分:0)

有时,游乐场无法按预期工作。可能是因为两个视图都没有定义超级视图。

在真正的应用程序中,它可以正常工作。

    override func viewDidLoad() {
    super.viewDidLoad()

    let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 37.5, height: 66.7))
    containerView.backgroundColor = UIColor.redColor()


    view.addSubview(containerView)       

    let myView = UIView()
    myView.frame = CGRect(x: 0, y: 290, width: 200, height: 200)
    myView.backgroundColor = UIColor.blueColor()

    view.addSubview(myView)
}

我在playgorund中尝试了这段代码:

let cv = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 375.0, height: 667.0))
cv.backgroundColor = UIColor.redColor()

let v1 = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 30.0, height: 60.0))
v1.backgroundColor = UIColor.yellowColor()

cv.addSubview(v1)

let v2 = UIView()
v2.frame = CGRect(x: 0, y: 200, width: 30.0, height: 60.0)
v2.backgroundColor = UIColor.blueColor()


cv.addSubview(v2)

它适用于两个初始化程序。