我在故事板中设计了一个带有2个动态内容的自定义单元格:
返回单元格高度并调整UILabel没有问题,但我无法移动UIImageView。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return [CustomCell heightFor:self.tableContent[indexPath.row]];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CustomCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
[cell initWith:self.tableContent[indexPath.row]];
NSLog(@"%f %f", cell.frame.size.height, cell.myImageView.frame.origin.y);
return cell;
}
NSLog返回单元格的正确高度,以及myImageView的正确原点,但imageView保留在原位。 这是用于初始化单元格的方法(在CustomCell.m中定义)
- (void)initWith:(CustomModel *)model {
NSInteger newHeight = [CustomCell heightFor:model];
self.myImageView.frame = CGRectMake(self.myImageView.frame.origin.x,
self.myImageView.frame.origin.y + (newHeight - kCellBaseHeight),
self.myImageView.frame.size.width,
self.myImageView.frame.size.height);
}
总结一下:
尽管所有的值都是正确的,但单元格并没有按照应有的方式绘制。这意味着当单元格较大时,单元格内的图像太高,而当单元格较小时,图像会被下面的单元格隐藏。
我做错了什么?自动布局可以与此有关吗?