2016-10-14 24 views
1

我在xib中使用可选UIImageView创建了自定义UITableViewCell。我创建了一个约束条件,其中一个标签的前缘与imageView的后缘相连。在xib中使用可选UIImageView自定义UITableViewCell

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

我在正确的轨道上吗?我希望它的行为与Value1/2的UITableViewCell原生样式相同,如果没有图像集,则所有内容都将移动到左侧。

感谢

回答

0

是的,你在正确的轨道上。要做到这一点的简单方法是你必须创建一个你的imageview widht常量的IBOutlet。见下图。

Imageview Width IBOutlet

那么你的宽度不变设置为0

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

你的标签离开,因为它拥有领先的空间,您的ImageView将自动移动。

+0

谢谢。虽然可能不会像正确的解决方案,但它的工作。我认为实际上删除imageView并更新所有约束将是正确的解决方案。我唯一需要做的其他事情就是更新一些约束条件,使它们的常数大于或等于。 – bdaniels

0

您可以有两个制约因素之一文本标签视图的左边缘:

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

| < - (10) - > [ImageView] < - (10) - > [Label] ....

因此,如果你想隐藏图像,你可以隐藏图像/禁用约束。

0

没有办法让这种情况自动发生,因为UIImageView保持它的大小,不管它是否有图像集。

一种方法是保留当前的设置,并在没有图像时将代码中的标签约束更新为-yourImageView.bounds.size.width。这将在需要时将标签转移。

相关问题