无法设置 UIView 的背景颜色 Swift 5

Posted

技术标签:

【中文标题】无法设置 UIView 的背景颜色 Swift 5【英文标题】:Can't set UIView's background color Swift 5 【发布时间】:2019-12-27 22:41:07 【问题描述】:

我有一个这样初始化的视图:

var view: UIView! = 
    var perm = UIView()

    perm.backgroundColor = UIColor.black

    // enable auto layout
    perm.translatesAutoresizingMaskIntoConstraints = false

    return perm
()

之后,我将标签作为子视图添加到view。标签初始化如下:

var title: UILabel! = 
    let perm = UILabel()
    perm.textColor = UIColor.white
    perm.numberOfLines = 0
    perm.font = UIFont.boldSystemFont(ofSize: 20)

    // enable auto layout
    perm.translatesAutoresizingMaskIntoConstraints = false

    return perm
()

之后,我以编程方式添加了一些约束。当我运行应用程序时,title 显示在正确的位置,但尚未设置 view 的背景颜色。

编辑

这就是我设置约束的方式:

view.addSubview(title)

view.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
view.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
view.bottomAnchor.constraint(equalTo: image.bottomAnchor).isActive = true

title.leadingAnchor.constraint(equalTo: title.superview!.leadingAnchor, constant: 20).isActive = true
title.trailingAnchor.constraint(equalTo: title.superview!.trailingAnchor, constant: -20).isActive = true
title.bottomAnchor.constraint(equalTo: title.superview!.bottomAnchor, constant: -20).isActive = true

【问题讨论】:

展示你如何设置约束 我在 :) 中编辑过它们 【参考方案1】:

view 需要一个高度

view.heightAnchor.constraint(equalToConstant:200).isActive = true

或对于标签高度加上顶部和底部填充 40

title.topAnchor.constraint(equalTo:view.topAnchor, constant:20).isActive = true

【讨论】:

以上是关于无法设置 UIView 的背景颜色 Swift 5的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 设置UIView的背景色和背景图片

动画 UIView 背景颜色 swift

Swift UIView 背景颜色不透明度

无法从 Controller 设置 UIView 背景颜色

Swift 5 Xcode 10.3 如何设置背景透明

Swift 5 CarbonKit pod 如何设置 x 轴并使 Pager 的背景颜色清晰