我有兩個視圖,一個UIWebView和一個UITableView,以編程方式擴展它們的高度。這兩個視圖都位於UIScrollView中。 WebView和TableView都禁用了滾動功能,並且ScrollView及其父視圖關閉了Autoresize子視圖。我想要做的是將這兩個項目的高度擴大到適當的大小,然後將ScrollView的內容大小擴展到兩個項目的總和。現在這個工作。但是,只要將TableView和WebView重置爲原始高度,但ScrollView將保留其新的內容大小。在UIScrollView中滾動後重置爲原始界面構建器高度和約束的視圖
我使用以下代碼更改webViewDidFinishLoad中的高度。
// Set the webview height //
webView.frame = CGRectMake(
webView.frame.origin.x
, webView.frame.origin.y
, webView.frame.size.width
, webView.scrollView.contentSize.height);
[webView setTranslatesAutoresizingMaskIntoConstraints:NO];
[webView addConstraint:[NSLayoutConstraint
constraintWithItem:webView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:webView.scrollView.contentSize.height]];
webView.scrollView.scrollEnabled = NO;
webView.scrollView.bounces = NO;
// Set the table height and location //
self.myTableView.frame = CGRectMake(self.myTableView.frame.origin.x
, webView.frame.origin.y + webView.scrollView.contentSize.height + 8
, webView.frame.size.width
, [tableRows count] * 40);
[self.myTableView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.myTableView addConstraint:[NSLayoutConstraint
constraintWithItem:self.myTableView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:[tableRows count] * 40]];
// Update the scrollview //
CGSize newSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, webView.frame.size.height + self.myTableView.frame.size.height);
[super updateViewConstraints];
[self.myScrollView setContentSize:newSize];
我猜我錯過了某個步驟。