TableViewCell中cell高度不一样时的优化:
1.先创建有可能要显示的View(只初始化,不加载图片,如果后面不改变的在这初始化 不变的东西只初始化一次);
2.可以用一个数据模型记录Cell中所有子视图的位置,视图要显示的数据;
3.调用数据模型给Cell中的view赋值,并设置frame
注意 重复利用cell时cell中的所有view,一定重新设置!!!!
在tableView中
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 1.创建cell
IWStatusCell *cell = [IWStatusCellcellWithTableView:tableView];
// 2.传递frame模型
cell.statusFrame =self.statusFrames[indexPath.row];
return cell;
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [superinitWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// 1.添加内部的子控件
[selfsetupOriginalSubviews];
}
return self;
}
- (void)setupOriginalSubviews
{
/** 1.顶部的view */
UIImageView *topView = [[UIImageViewalloc] init];
[self.contentViewaddSubview:topView];
self.topView = topView;
..................
/** 4.头像 */
UIImageView *iconView = [[UIImageViewalloc] init];
[self.topViewaddSubview:iconView];
self.iconView = iconView;
}
- (void)setStatusFrame:(ModeFrame *)statusFrame
{
_statusFrame = statusFrame;
// 给自视图赋值和frame
[selfsetupOriginalData];
}