Moz*_*ler 2 debugging autolayout swift
自动布局再次让我挠头。我在类的顶部定义了UIView和UITextField:
var urlField = UITextField(frame: .zero)
var barView = UIView(frame: .zero)
Run Code Online (Sandbox Code Playgroud)
我从viewWillAppear调用我的配置方法(所以我知道self.view已全部设置):
override func viewWillAppear(_ animated: Bool) {
configureURLBar()
}
Run Code Online (Sandbox Code Playgroud)
而且我在那没什么特别的。
func configureURLBar() {
barView.translatesAutoresizingMaskIntoConstraints = false
barView.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true
barView.heightAnchor.constraint(equalToConstant: 30).isActive = true
}
Run Code Online (Sandbox Code Playgroud)
当到达topAnchor约束时,我得到了异常,但我不明白为什么。如果我反转第二和第三行,直到到达.topAnchor行,它才炸毁,所以这就是问题所在。一旦理解了此异常的原因,我就可以问第二个问题(以防万一,您想知道我要做什么):如何在UIWebView的顶部添加用户输入(URL)栏。(这也不起作用-如果我尝试限制显示完美的self.webView时得到相同的结果)另外:我在调用viewWillAppear()之前先调用self.view.setNeedsDisplay()。
您必须先将视图添加到父视图。之后,您可以添加约束。
尝试这个:
override func viewWillAppear(_ animated: Bool)
{
self.view.addSubview(barView)
configureURLBar()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |