我正在寻找一种动态调整UICollectionViewCell
中UICollectionView
s的方法。这些单元格包含一个填充了动态HTML内容的UIWebView。因此我以前不知道webview的高度。
我试图挂钩func webViewDidFinishLoad(webView: UIWebView)
函数并动态调整它们,但这会破坏整个布局。因为细胞相互生长。
我要为iOS 7.1构建
有没有人有线索?
答案 0 :(得分:1)
为UIWebView创建高度约束,并将约束作为插座添加到UICollectionViewCell。
重载方法webViewDidFinishLoad:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
// Fit web content size.
CGRect frame = webView.frame;
CGRect oldFrame = frame;
frame.size.height = 1;
webView.frame = frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
webView.frame = oldFrame;
// Set content web view height constraint to new content size.
self.contentWebViewHeightConstraint.constant = fittingSize.height;
}
现在,当webView高度约束发生更改时,如果正确设置约束,则单元格高度应该会更改。
答案 1 :(得分:-1)
执行以下操作:
heightArray: [CGFloat]
func webViewDidFinishLoad(webView: UIWebView)
返回时,您可以确定单元格的高度。使用单元格索引heightArray[indexPath.row] = height
tableView.beginUpdates()
和tableView.endUpdates()
。这将强制表格通过调用func tableView(_ tableView: UITableView,
heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
func tableView(_ tableView: UITableView,
heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
以返回给定heightArray
这是在UITableView中拥有动态单元格高度的一般大纲。试试看。