繁体   English   中英

UITableViewCell动态高度与图像

[英]UITableViewCell dynamic height with image

我怎么不能用UITableViewController和UITableViewCell达到这种效果。

在此处输入图片说明 我只是试图将image.hidden = true设置为当有图像,而image.hidden = false为不是,但空白不会消失。 一些实现这一目标的想法? 谢谢!

在这种情况下,我建议您应该动态更新约束。将imageview的高度约束连接到viewcontroller。

 @IBOutlet var MyHeightConstraint: NSLayoutConstraint!    

并将imageview隐藏时将其值设置为0

MyHeightConstraint.constant = 0

您应该在UITableViewController中处理此问题。 假设您正在使用自动版式,则应设置约束以使用和不使用图像。 例如,假设您的单元格只是一个UIImageView和一个UILabel。

-----------
UIImageView
UILabel
-----------

您应该将imageView固定在顶部,右侧,左侧。 您应该将标签固定在底部,右侧,左侧,并在顶部设置2个约束。 一种是imageView,另一种是superView。 第一个具有999优先级,第二个具有500优先级。

在VC中,确定像元高度时,如果没有图像,则必须:

  1. 倒序优先
  2. ImageView.alpha = 0
  3. [自我layoutIfNeeded]

另外,如果您的约束设置正确,您甚至可以执行以下操作:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
 YourCellClass *cell = [self.tableView dequeueReusableCellWithIdentifier:kIdentifier];
// here you make your validations and setup your cell as we said before
// something like [cell setupForImage:UIImage andText:text];
return [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
}

有了这个,您甚至都不必在乎硬编码您的身高,该单元将为您完成。

希望能帮助到你!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM