swift - 向 uiview 添加约束时的 SIGABRT

标签 swift debugging autolayout

自动布局再一次让我摸不着头脑。我在类(class)顶部定义了一个 UIView 和 UITextField:

var urlField = UITextField(frame: .zero)
var barView = UIView(frame: .zero)

我从 viewWillAppear 调用我的配置方法(所以我知道 self.view 已经设置好了):

   override func viewWillAppear(_ animated: Bool) {
                configureURLBar()
    }

我在那里没有做任何特别的事情。

func configureURLBar() {
    barView.translatesAutoresizingMaskIntoConstraints = false
    barView.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true
    barView.heightAnchor.constraint(equalToConstant: 30).isActive = true
    }

当它到达 topAnchor 约束时,我得到了异常,我不明白为什么。如果我颠倒第 2 行和第 3 行,它直到到达 .topAnchor 行才会爆炸,这就是问题所在。一旦我理解了这个异常的原因(如果你想知道我想要做什么),我可以问第二个问题:如何在我的 UIWebView 顶部添加一个用户输入 (url) 栏。 (这也不起作用 - 如果我尝试限制显示完美的 self.webView,结果相同)另外:我在调用 viewWillAppear() 之前调用了 self.view.setNeedsDisplay()。

最佳答案

您必须先将 View 添加到父 View 。之后,您可以添加约束。

试试这个:

override func viewWillAppear(_ animated: Bool) 
{
self.view.addSubview(barView)               
configureURLBar()
}

关于swift - 向 uiview 添加约束时的 SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42856610/

相关文章:

安卓工作室 : the debugger detaches but the app stops too

ios - UIDatePickers 高度没有动画?

ios - 获取自动布局、NSAutoLayout、objective C 的警告

ios - ViewController、tableView 和 Mapkit

swift - 警告 convertPointToBase 已弃用

ios - 阿拉伯语文本对齐

Node.JS 错误代码含义? (具体是fs)

ios - 两个函数在 Swift 中调用

python - 如何使用 VSCode 调试器来调试 Gunicorn 工作进程?

swift - 在表格 View 的单元格中使用自动布局的 TextView 的自动高度