如何更新我的框架的高度?

时间:2016-04-06 07:57:44

标签: ios swift uiscrollview uiwebview

我已将UIScrollView推入UIWebView

    self.scrollView = UIScrollView(frame: CGRect(x: 0, y: 64, width: CGRectGetWidth(self.view.frame), height: CGRectGetHeight(self.view.frame) - 108))
    self.scrollView.backgroundColor = .grayColor()
    self.view.addSubview(self.scrollView)

    self.webView = UIWebView(frame: CGRect(x: 0, y: 0, width: CGRectGetWidth(self.scrollView.frame), height: CGRectGetHeight(self.scrollView.frame)))
    self.webView.backgroundColor = .orangeColor()
    self.scrollView.addSubview(self.webView)

现在,我想更改scrollViewwebView高度。为此我做了:

func webViewDidFinishLoad(webVieww: UIWebView) {
    self.scrollView.frame.size.height = self.webView.scrollView.contentSize.height
    self.webView.frame.size.height = self.webView.scrollView.contentSize.height
}

但没有运气。它不会更改UIScrollViewUIWebView的高度值。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以尝试layoutSubview,例如: [self.scrollView layoutSubview]; [self.webView layoutSubview];

答案 1 :(得分:0)

要更新帧或高度/宽度 - 您首先要将translatesAutoresizingMaskIntoConstraints设置为false,然后根据要求设置帧。如果这不起作用,请在viewWillLayoutSubviews()中进行更改。这方面的一个例子如下:

override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        let width = UIScreen.mainScreen().bounds.width
        myView.translatesAutoresizingMaskIntoConstraints = false
        myView.contentSize = CGSizeMake(width, self.mySecondView.frame.height * 4)
    }