我正在尝试以编程方式调整视图大小,以便它在所有设备大小上都很好看,但我无法开始使用。
我在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()
启动应用时,视图没有背景颜色。这有什么问题?
答案 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
}
这样可以在所有内容布局后设置您的视图框架。必须在子类的viewDidLayoutSubviews
或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
的乘数并在那里设置背景颜色。