我想根据图像链接是否可用于该单元格行,在特定单元格的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也是如此 .
顺便说一句,我使用tableView.dequeueReusableCellWithIdentifier(cellIdentifier,forIndexPath:indexPath)来检索单元格 . tableview和cell是在storyboard创建的 .
有什么帮助如何在单元格内回收隐藏的UIImageview所占用的空间,但在滚动时不会对其他行产生影响?
1 回答
不是以编程方式添加约束,而是在Interface Builder中指定宽度,并在代码中创建宽度约束的出口 . 然后,在将单元格出列后,您可以将宽度约束的
constant
属性更改为0(如果您希望它隐藏),或者更改为您想要扩展宽度的任何属性 .编辑:此外,我按照@MuhammadZohaibEhsan在下面的评论中的建议,将约束的
constant
属性重置为单元格的prepareForReuse()
方法中的原始大小 .