更改视图框架时,为什么约束不再“起作用”?

时间:2016-09-08 13:02:59

标签: ios objective-c

当我尝试更改框架UIWebView的大小时,它会发生变化,但忽略与此视图相关的约束。这是一个截图: link

如您所见,webview会在按钮上显示,而忽略垂直空间约束。

以下是更改框架的代码:

-(void)webViewDidFinishLoad:(UIWebView *)webView{
    CGRect frame = _webview.frame;
    frame.size.height = 1;
    _webview.frame = frame;
    CGSize fittingSize = [_webview sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    _webview.frame = frame;
}

我错过了什么?我应该改变什么才能使它发挥作用?

2 个答案:

答案 0 :(得分:1)

以下是步骤。

1)删除按钮的底部约束。给它高度约束。

2)更新Web视图的高度约束,而不是更新框架。

希望这有帮助!

答案 1 :(得分:0)

在您的情况下,webview会相应地更改其高度,但会覆盖button,因此如果您要动态更改webview的高度,则必须更新contraints根据层次结构,它下面的其他UI组件。