我的自定义UIWebView
中有UITableViewCells
。问题是我不太清楚如何动态调整UITableViewCell
单元格的大小,因为在我知道webview的高度之前,单元格内的webview需要渲染。
我建议的解决方案如下:
CustomCell.m 符合UIWebViewDelegate
,并在其内部的webview完成加载后,使用委托方法返回自己的高度。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
[self.contentWebview setFrameHeight:height];
[self.delegate cellDidFinishLoadingWithCell:self withHeight:height];
}
然后 TableViewController.m 符合单元格的委托,并通过执行以下操作重绘:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
return [self.heights[[NSString stringWithFormat:@"%i%i",indexPath.section,indexPath.row]] floatValue];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UIWebViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"webview-cell" forIndexPath:indexPath];
MyData *d = self.data[indexPath.section];
[cell setUpCellForData:d];
[cell setDelegate:self];
return cell;
}
- (void)cellDidFinishLoadingWithCell:(LessonTableViewCell *)cell withHeight:(CGFloat)height {
NSIndexPath *indexPath = [self.tableview indexPathForCell:cell];
NSString *key = [NSString stringWithFormat:@"%i%i",indexPath.section,indexPath.row];
if (!self.heights[key]) {
[self.heights setObject:[NSNumber numberWithFloat:height] forKey:key];
}
[self.tableview beginUpdates];
[self.tableview endUpdates];
}
有些细胞似乎是正确的高度,但其中许多细胞最终的高度为0 ......
答案 0 :(得分:0)
删除:
[self.tableView reloadData];
添加:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([www\.]*domain\.com)$ [NC]
RewriteCond %{REQUEST_URI} ^/.+$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^([www\.]*domain\.com)$ [NC]
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/web [L,R=301]
这是Apple文档:
XPath 1.0
beginUpdates