【问题标题】:UIView in Playground操场上的 UIView
【发布时间】:2016-08-08 03:27:18
【问题描述】:

我已经定义了两个不同的视图——

第一种方法:

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()

我看到了一些类似输出的日志消息。

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

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

这是图片。

【问题讨论】:

    标签: swift uiview swift-playground


    【解决方案1】:

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

    在实际应用中它工作正常。

        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)
    

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

    【讨论】:

    • cv,v1 有预览,但v2 没有预览。我的意思是每当使用v2 定义类型时,都没有预览。那么,这是一个错误吗?还是别的什么?
    • 在我的操场上 - 我看到他们俩。当我预览 cv 时,我看到其中有红色和蓝色的矩形。版本 7.2 (7C68)。这很可能是操场上的错误。
    • 我只能看到cv,v1 但在创建时看不到v2。但是我可以在添加时看到v1,v2cv 中。
    • 很明显,当没有超级视图时,playground 不能很好地处理这个问题。进一步 - 我会用 XCPlayground 检查这个。
    • 但是,请记住——这只是在操场上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多