確定內容大小

在許多情況下,例如在表檢視單元格中使用 Web 檢視時,確定呈現的 HTML 頁面的內容大小非常重要。載入頁面後,可以使用 UIWebViewDelegate 委託方法計算:

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

    NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
}

該程式碼採用了另一種技巧,即在測量裝配尺寸之前將網頁檢視的高度設定為 1。否則它只會報告當前幀大小。測量後,我們立即將高度設定為實際內容高度。

資源