2014-11-02 154 views

回答

0

答案「以編程方式添加約束」是正確的,但對於細節我略微接受它作爲完整答案。

下面是我做到的!

  1. 卸下的WebView
  2. 所有故事板約束故事板添加一個佔位符約束爲將要與代碼添加約束。這一步非常重要(並且很容易被忽略),否則你會得到一個關於衝突約束的錯誤。 Placeholder constraint
  3. 代碼添加到webviewDidFinishLoad委託方法

--Code--

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

    _scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, _headerImageView.frame.size.height + webView.scrollView.contentSize.height); 



    _webView.translatesAutoresizingMaskIntoConstraints = NO; 

    NSDictionary *viewsDictionary = @{@"myWebView":_webView}; 

    NSString *constraintsString = [NSString stringWithFormat:@"V:[myWebView(%i)]", (int)_scrollView.contentSize.height]; 


    NSArray *constraint_H = [NSLayoutConstraint constraintsWithVisualFormat:constraintsString options:0 metrics:nil views:viewsDictionary]; 

    [_webView addConstraints:constraint_H]; 


} 
2

UIScrollView具有動態約束,在運行時會生成左邊,上邊,寬度和高度。如果將UIView放在UIScrollview中並且在Interface Builder中固定了固定約束,它將生成一個錯誤,因爲這些參數與Superview/Container View相關。

enter image description here

你可以嘗試一些變通方法:

1-添加的UIView約束編程

http://www.thinkandbuild.it/learn-to-love-auto-layout-programmatically/

2-手動調整一個UIView子類

裏面initWithFrame功能視圖邊界

請給我任何關於你的進展的反饋。

+0

有何進展? @sayguh – carantes 2014-11-04 01:16:03