我想使用xib文件将子类化的tableview(TSNInformationTableView)置于其superview中。
使用自定义内在大小设置表格的高度:
问题是该表可以具有动态大小/高度,不同数量的单元格内部具有不同的文本。所以在TSNInformationTableView中我定义了 intrinsicContentSize 方法:
- (CGSize) intrinsicContentSize {
return self.contentSize
}
我对self.contentSize.height的问题是它没有返回表的正确高度,而是稍微小一些。这就是为什么我试图用乘法器1.45补偿这一点。它不能在细胞数量不同的情况下正确扩展。
在图像中有最后一个单元格的可见剪切,因为intrinsicContentSize定义的表格的高度不正确。
使用以下代码初始化表:
self.informationTableView.estimatedRowHeight = 80;
self.informationTableView.rowHeight = UITableViewAutomaticDimension;
[self.informationTableView setScrollEnabled:NO];
更新
我不得不在嵌套表视图(TSNInformationTableView)的控制器中添加此方法:
- (void) viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if(!self.isInformationTableViewLoaded) {
self.isInformationTableViewLoaded = YES;
[self.InformationTableView invalidateIntrinsicContentSize];
[self.InformationTableView setNeedsLayout];
}
}
isInformationTableViewLoaded只是控制器中的一个简单BOOL属性,表示已创建表(这样我们就可以获得正确的表视图大小)。它现在没有任何动画问题。
此表格的估计应该设置为例如: 1000。
答案 0 :(得分:0)
我必须在嵌套表的控制器中添加 - (void)viewDidLayoutSubviews。请参阅原始帖子末尾的编辑。