创建一个具有Swift背景的Uiview



我纯粹是由代码上的控制器上创建一个Uiview(我根本不使用故事板。

这是该简单视图的代码:

let greenView: UIView = {
    let v = UIView(frame: CGRect.zero)
    v.translatesAutoresizingMaskIntoConstraints = false
    v.backgroundColor = UIColor.rgb(red: 183, green: 202, blue: 45)
    v.layer.borderWidth = 1
    return v
}()

当我在屏幕上设置视图时,我有:

    view.addSubview(greenView)
    greenView.anchor(top: joined.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 20, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: view.frame.width - 20, height: 200)

此"锚"功能只是一个扩展程序,可以帮助设置自动布局约束,并且效果很好,包括实际上从Uiview继承的所有其他组件(例如Uibutton(。

问题:视图不会以任何位置出现在屏幕上...我是否缺少什么?

对于锚方法,我正在使用lbtacomponents。

更具体地说到目前为止,所有其他方法都可以正常工作。

您说您正在使用lbtacomponents,但是您的方法签名不匹配。它们很近,但是看起来他们正在使用一些旧版本(看历史记录,我看不到与您在上面使用的方法签名相匹配的旧版本(,或者您有自己的扩展名包装了此API。例如,以下代码:

greenView.anchor(top: joined.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 20, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: view.frame.width - 20, height: 200)

应该是:

greenView.anchor(joined.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, topConstant: 20, leftConstant: 20, bottomConstant: 0, rightConstant: 0, widthConstant: view.bounds.width - 20, heightConstant: 200)

当我更正方法签名并将其与最新版本的lbtacomponents一起使用时,代码正常。因此,问题必须放在这些扩展的版本中(或您用来包装该库以产生上面API的任何图层(。

最新更新