这个问题是w.r.t xib以及在CellView
中显示自定义UITableView
的旧样式。我的观点中有autolayouts
。
我有一个DynamicSubView
(动态高度)的UIView
类型,我想在UITableViewCell
中重复使用。为此,我尝试了两件事,
DynamicSubview
添加为[cell.contentView addSubview:myDynamicView]
UIView
的约cell.xib
内添加了0-0-0-0
Left-Top-Right-Bottom
个内容视图NSLayoutConstraint
。我正在计算的高度identity inspector
和在运行时更改。并将该视图的DynamicSubview
设置为MyCell.m
。在DynamicSubView
课程中,我添加了awakeFromNib
&{在layoutSubView
方法中,我正在计算DynamicSubView
的动态高度。
我尝试在heightForRowAtIndexPath
中添加与高度相关的代码,但是在表加载时它首次进入无限循环。
问题是细胞越来越重叠。我应该创建一个高度值数组并重新加载。任何更好的解决方案,以适当的高度重新加载细胞。
MyCell
课程中的代码:
- (void)awakeFromNib
{
[super awakeFromNib];
self.myDynamicView = (DynamicSubView *)self.myContainerView;
[self.myDynamicView setUpView:YES];
}
- (void)layoutSubviews
{
[super layoutSubviews];
[self.myDynamicView doSomething];
self.c_height.constant = [self.myDynamicView getHeightOfDynamicSubview];
//CGRect cellFrame = self.contentView.frame;
//self.contentView.frame = CGRectMake(cellFrame.origin.x, cellFrame.origin.y, cellFrame.size.width, self.c_height.constant);
self.cellHeight = self.c_height.constant;
}
答案 0 :(得分:0)
您可以在视图控制器中使用以下方法,而不是在tableViewCell中使用LayoutSubiew()
<强> SWIFT 强>
self.tableView.estimatedRowHeight = 100(假设你的tableViewCell的最小高度为100)
func tableView(tableView:UITableView,heightForRowAtIndexPath indexPath:NSIndexPath) - &gt; CGFloat的 { 返回UITableViewAutomaticDimension }