Ios 设置视图的背景色不起作用
我正试图以编程方式调整视图的大小,以便它在所有设备大小上看起来都很好,但我在开始时遇到了问题 我在main.storyboard上有一个视图,具有水平和垂直居中的约束 我在Ios 设置视图的背景色不起作用,ios,swift,uiview,background-color,Ios,Swift,Uiview,Background Color,我正试图以编程方式调整视图的大小,以便它在所有设备大小上看起来都很好,但我在开始时遇到了问题 我在main.storyboard上有一个视图,具有水平和垂直居中的约束 我在viewDidLoad()方法中有以下代码: centerView.frame.size.width = 2/3 * view.frame.width centerView.frame.size.height = 2/3 * view.frame.height centerView.layer.backgroundColo
viewDidLoad()
方法中有以下代码:
centerView.frame.size.width = 2/3 * view.frame.width
centerView.frame.size.height = 2/3 * view.frame.height
centerView.layer.backgroundColor = UIColor.blue.cgColor
当我启动应用程序时,视图没有背景色。这里的问题是什么?您将约束与帧混合。。你不能那样做。。最有可能的是,您的视图大小不正确,因此即使背景色在那里,您也看不到背景色。。在视图层次检查器中检查视图大小 选项1:继续将约束与帧混合:
func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
centerView.frame.size.width = 2.0/3.0 * view.frame.width
centerView.frame.size.height = 2.0/3.0 * view.frame.height
centerView.layer.backgroundColor = UIColor.blue.cgColor
}
这将在布局完所有内容后设置视图的框架。它必须在子类的viewdilayoutsubviews
或layoutSubviews
中完成
选项2:仅使用约束
func viewDidLoad() {
super.viewDidLoad()
centerView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 2.0 / 3.0, constant: 0.0).isActive = true
centerView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 2.0 / 3.0, constant: 0.0).isActive = true
centerView.layer.backgroundColor = UIColor.blue.cgColor
}
选项3:在情节提要中执行。。您可以将
2.0/3.0
倍增,并在那里设置背景色。您正在将约束与帧混合。。你不能那样做。。最有可能的是,您的视图大小不正确,因此即使背景色在那里,您也看不到背景色。。在视图层次检查器中检查视图大小
选项1:继续将约束与帧混合:
func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
centerView.frame.size.width = 2.0/3.0 * view.frame.width
centerView.frame.size.height = 2.0/3.0 * view.frame.height
centerView.layer.backgroundColor = UIColor.blue.cgColor
}
这将在布局完所有内容后设置视图的框架。它必须在子类的viewdilayoutsubviews
或layoutSubviews
中完成
选项2:仅使用约束
func viewDidLoad() {
super.viewDidLoad()
centerView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 2.0 / 3.0, constant: 0.0).isActive = true
centerView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 2.0 / 3.0, constant: 0.0).isActive = true
centerView.layer.backgroundColor = UIColor.blue.cgColor
}
选项3:在情节提要中执行。。您可以执行
2.0/3.0的倍增并在那里设置背景色。使用:centerView.backgroundColor=.blue
使用:centerView.backgroundColor=.blue