自定义UITableViewCell与xib中的可选UIImageView

时间:2016-10-14 20:35:36

标签: ios objective-c uitableview xib

我在xib中创建了一个带有可选UIImageView的自定义UITableViewCell。我创建了约束,其中标签的前缘附着在imageView的后缘上。

imageView中的图像是可选的,如果我没有设置图像,我想删除/隐藏imageView并将标签移到左侧。我试图在layoutSubviews中的代码中添加和删除约束,但这打破了其他约束。

我在这里走在正确的轨道上吗?我希望它的行为类似于UITableViewCell本机样式的Value1 / 2,如果没有图像集,则将所有内容移动到左侧。

由于

3 个答案:

答案 0 :(得分:0)

对于视图左边缘的文本标签,您可以有两个约束:

|< - (大于= 10) - > [标签] ...

|&LT ;-( 10) - > [ImageView的] LT ;-( 10) - > [标签] ....

因此,如果您想要隐藏图像,您可以隐藏图像/停用约束。

答案 1 :(得分:0)

没有办法让这种情况自动发生,因为无论UIImageView是否有图像集,-yourImageView.bounds.size.width都会保持其大小。

一种方法是离开您当前拥有的设置,并在没有图像时将代码中的标签约束更新为{{1}}。这会在需要时改变你的标签。

答案 2 :(得分:0)

是的,你走在正确的轨道上。这样做的简单方法是你必须创建一个不变的imageview的IBOutlet。见下图。

Imageview Width IBOutlet

然后将宽度常量设置为0

if(// condition to check if imageview does not contain any image){
      _imgVwWidthConst.constant = 0;
}

您的标签将自动移至左侧,因为它具有您的图像视图的前导空间。