Ios Swift不更新视图约束
我有一个Ios Swift不更新视图约束,ios,swift,uitableview,uiwebview,constraints,Ios,Swift,Uitableview,Uiwebview,Constraints,我有一个UIWebView。我正在使用以下代码: func webViewDidFinishLoad(_ webView: UIWebView) { self.webView.frame.size.height = 1 self.cardBoxNameTopConstraint.constant = webView.sizeThatFits(CGSize.zero).height self.webView.frame.size.height = webView.siz
UIWebView
。我正在使用以下代码:
func webViewDidFinishLoad(_ webView: UIWebView) {
self.webView.frame.size.height = 1
self.cardBoxNameTopConstraint.constant = webView.sizeThatFits(CGSize.zero).height
self.webView.frame.size.height = webView.sizeThatFits(CGSize.zero).height
self.webView.scrollView.contentSize.height = webView.sizeThatFits(CGSize.zero).height
self.contentView.frame.size.height = webView.sizeThatFits(CGSize.zero).height
for v in self.contentView.subviews {
v.setNeedsDisplay()
v.layoutIfNeeded()
}
}
此代码旨在获取内容大小,然后应用它并调整视图大小,但第一次加载视图时,它会调整我的UIWebView
,并且UITableViewCell
不可滚动。当我使用UISegmentControl
转到另一个屏幕并使用我的UIWebView
返回屏幕时,它会调整自身大小,UITableViewCell
现在可以调整大小
如何在不切换屏幕的情况下更新视图?我正在使用setNeedsDisplay
和v.layoutifneed
,但它没有帮助
如何解决此问题?您可以调用
contentView.setNeedsDisplay()
和contentView.layoutIfNeed()
,并在子视图中循环。这两个调用都将递归地通过子视图。我同意dmorrow。问题是您在错误的视图上调用了layoutifneed()
。它需要是需要布局的所有内容的超级视图。您可以通过子视图循环调用contentView.setNeedsDisplay()
和contentView.layoutIfNeed()
。这两个调用都将递归地通过子视图。我同意dmorrow。问题是您在错误的视图上调用了layoutifneed()
。它需要是所有需要布局的事物的超视图。