簡體   English   中英

如何根據UIWebview的內容確定UICollectionViewCell的大小?

[英]How can I size a UICollectionViewCell based on the content of a UIWebview?

我在動態添加UICollectionViewCell s到一個UICollectionView使用委托方法cellForItemAtIndexPath 每次該方法運行時創建的UICollectionViewCell包含一個UIWebView ,其內容大小不一。 以編程方式創建UICollectionViewCell時,無法設置其大小。 相反,我必須實現一個名為sizeForItemAtIndexPath的方法。

不幸的是,這種確定大小的方法似乎實際創建像元的方法之前被調用。 目前,我無法引用UIWebView的大小來幫助找到合適的單元格大小。 我所擁有的只是UIWebView的實際內容,但是我不知道如何使用它來查找大小,因為內容包括樣式化的HTML和圖像。

我試圖在內存中創建UIWebViews並從中獲取尺寸,但是尺寸始​​終為0。 我有些放心,這沒有用,因為對我來說這似乎是一個丑陋的駭客。

還有什么我可以嘗試的嗎?

也許這會有所幫助:

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

我先前的答案不適用於UICollectionView,但適用於UITableView。 這在UICollectionViewController中為我工作:

 NSString *webViewHeight =  [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"idOfMainElementInHtml\").offsetHeight;"];

在此使用

- (void)webViewDidFinishLoad:(UIWebView *)webView

記住NSMutableDictionary中的值,該值將NSIndexPath對象映射到高度值。 每次使用此方法將以前的值與新值進行比較,然后讓Layout對象使用此字典來計算新的布局。

玩得開心 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM