亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在可變高度UITableView內基于內容確定UIWebView高度?

如何在可變高度UITableView內基于內容確定UIWebView高度?

iOS
夢里花落0921 2019-12-10 10:38:47
我正在嘗試創建一個UITableView高度可變的行,如該問題的答案中所述我的問題是每個單元格包含一個UIWebView具有不同(靜態加載)內容的內容,我無法弄清楚如何根據該內容計算適當的高度。有沒有辦法做到這一點?我已經嘗試過像這樣的事情:   (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {       WebViewCell *cell = (WebViewCell*)[self tableView:tableView cellForRowAtIndexPath:indexPath];       [cell setNeedsLayout];       [cell layoutIfNeeded];       return cell.bounds.size.height;    }單元格本身是從筆尖加載的,而筆尖只是一個UITableViewCell包含的UIWebView。(雖然可變高度會更好,但是如果單元格只是將自身調整為最大的html內容也可以)。
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

很高興找到您的答案,JavaScript技巧對我來說效果很好。


但是,我想說的還有“ sizeThatFits:”方法:


CGSize goodSize = [webView sizeThatFits:CGSizeMake(anyWidth,anyHeigth)];

我們必須將首選大小設置為零,但除此之外,它通??偸怯行У模?/p>


通常,因為使用UIWebViews,它似乎僅在第二次加載時起作用(我使用“ loadHTMLString:”方法,是的,我從委托“ didFinishLoad:”方法中調用“ sizeThatFits:”)。


因此,這就是為什么我很高興找到您的解決方案在任何情況下都有效的原因。


查看完整回答
反對 回復 2019-12-10
?
MM們

TA貢獻1886條經驗 獲得超2個贊

這似乎有效。目前。


- (void)webViewDidFinishLoad:(UIWebView *)webView

{

    CGFloat webViewHeight = 0.0f;

    if (self.subviews.count > 0) {

        UIView *scrollerView = [self.subviews objectAtIndex:0];

        if (scrollerView.subviews.count > 0) {

            UIView *webDocView = scrollerView.subviews.lastObject;

            if ([webDocView isKindOfClass:[NSClassFromString(@"UIWebDocumentView") class]])

                webViewHeight = webDocView.frame.size.height;

        }

    }

}

如果失敗,它應該安全地返回0。


查看完整回答
反對 回復 2019-12-10
  • 3 回答
  • 0 關注
  • 592 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號