首页 文章

在tableview单元格中更改UIImageView显示/尺寸

提问于
浏览
0

我想根据图像链接是否可用于该单元格行,在特定单元格的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 回答

  • 0

    不是以编程方式添加约束,而是在Interface Builder中指定宽度,并在代码中创建宽度约束的出口 . 然后,在将单元格出列后,您可以将宽度约束的 constant 属性更改为0(如果您希望它隐藏),或者更改为您想要扩展宽度的任何属性 .

    编辑:此外,我按照@MuhammadZohaibEhsan在下面的评论中的建议,将约束的 constant 属性重置为单元格的 prepareForReuse() 方法中的原始大小 .

相关问题