我想根据图片链接是否可用于该单元格行,在特定单元格的UITableview单元格中隐藏UIImageView。
如果某个单元格的后端没有图像网址,那么我想“禁用”UIImageview并回收其空间以使标签展开。 (UILabel位于左侧,UIImageView位于右侧。 因此,如果没有图像,那么如果标签文本有更多文本,我希望标签文本扩展到右边。)
我尝试了两种解决方案: 1.通过设置宽度约束将UIImageView的宽度更改为0。
let widthConstraint = NSLayoutConstraint(item: cell.articleImageView as UIView,
attribute: NSLayoutAttribute.Width,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
cell.myImageView.addConstraint(widthConstraint)
2。从单元格中删除imageview。
cell.myImageView.removeFromSuperView()
但是当我滚动浏览时,其他单元格的图像也会受到影响并被隐藏起来。对于myImageView.hidden = true。
BTW,我使用tableView.dequeueReusableCellWithIdentifier(cellIdentifier,forIndexPath:indexPath)来检索单元格。 tableview和cell是在storyboard上创建的。
如何帮助如何在单元格内回收隐藏的UIImageview占用的空间,但在滚动时不会对其他行产生影响?
答案 0 :(得分:0)
不是以编程方式添加约束,而是在Interface Builder中指定宽度,并在代码中创建宽度约束的出口。然后,在将单元格出列后,您可以将宽度约束的constant
属性更改为0(如果您希望它隐藏),或者更改为您想要扩展宽度的任何属性。
编辑:此外,我按照@MuhammadZohaibEhsan在以下评论中的建议,将约束的constant
属性重置为单元格prepareForReuse()
方法中的原始大小。