设置视图的背景颜色不起作用

时间:2018-01-01 16:26:09

标签: ios swift uiview background-color

我正在尝试以编程方式调整视图大小,以便它在所有设备大小上都很好看,但我无法开始使用。

我在main.storyboard上设置了一个视图,其中包含水平和垂直居中约束。

我在j = '{"Time Series (1min)":{"2018-01-01 05:00:00":{"1. open":"10437.3000","2. high":"10438.6500","3. low":"10431.5000","4. close":"10434.8000","5. volume":"0"}}}' JSON.parse(j, function(key, value) { if (key[0] == 4) console.log(key, value) })方法中有以下代码:

viewDidLoad()

启动应用时,视图没有背景颜色。这有什么问题?

1 个答案:

答案 0 :(得分:2)

您正在将约束与框架混合在一起..您不能这样做..最有可能的是,您的视图尺寸不正确,因此您即使没有看到背景颜色&# 39; s那里..在视图层次结构检查器中检查您的视图大小。

选项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
}

这样可以在所有内容布局后设置您的视图框架。必须在子类的viewDidLayoutSubviewslayoutSubviews中完成。

选项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的乘数并在那里设置背景颜色。