我有一个标签栏,在其中一个视图中有一个滚动视图。我已在此滚动视图中添加了一个标签,但是在加载时,它不在正确的位置。转到另一个选项卡视图并返回后,它立即处于正确的位置。
代码如下:
scrollViewFunc()
scrollView.addSubview(dateLbl)
dateLbl.center = CGPoint(x: self.scrollView.center.x, y: self.scrollView.center.y + 100)
func scrollViewFunc() {
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.contentSize.height = 800
scrollView.backgroundColor = UIColor.brown
self.view.addSubview(scrollView)
//x,w,t,b
scrollView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
scrollView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
}
我将它放在viewDidLoad()中以设置滚动视图以及viewWillAppear,但是在加载时仍然存在问题,即它位于错误的位置。
有什么建议吗?
答案 0 :(得分:0)
在scrollView包含框架之前,将一个框架分配给标签。
即
scrollView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
scrollView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
应该之后
.sidebar {
width: 207px;
display: block;
position: fixed;
top: 0;
bottom: 0;
left: 0;
z-index: 1;
overflow: hidden;
background-color: #2D51A3;
}
.content {
position: relative;
z-index: 4;
float: right;
width: calc(100% - 215px);
min-height: calc(100vh - 3.1em);
background-color: green;
}
<div class="app">
<div class="sidebar">
</div>
<div class="content">
</div>
</div>
我也不会指望立即解决到正确框架的约束,您可能也想设置具有约束的dateLbl,或者在知道scrollView具有正确框架的情况下在viewDidLayoutSubviews中设置框架。