将Autolayout与变量视图一起使用

时间:2014-02-18 13:57:52

标签: ios objective-c uitableview autolayout

我正在尝试使用AutoLayout,但我遇到了一些问题。这是我的自定义单元格,左上角有UIImageViewUILabel(标题),UITextView(SampleText),另一个UIImageView位于底部:

enter image description here

我的问题是所有内容的计算都是正确的,但在某些情况下我不需要底部的UIImageView,而且如果UIImageView,则其他视图不再位于正确的位置已移除。在这种情况下使用AutoLayout是否是个好主意?

2 个答案:

答案 0 :(得分:1)

您不需要在代码中设置约束,只需在Interface Builder中设置它们并将IBOutlet从它们中删除。

然后,当您不需要imageView时,只需将其宽度和高度设置为零并相应地调整约束。

这样的事情:

if (!showMyImage) 
    GCRect tmpFrame = image.frame;
    tmpFrame.size.width = 0;
    image.frame = tmpFrame;
    [iboutletConstraint setConstant:0]

答案 1 :(得分:1)

我建议在低优先级的左侧图像和文本视图中添加额外的底部空间等于约束。在显示底部图像视图时,自动布局系统会考虑其约束(因为优先级更高)。删除底部图像视图时,其约束消失,并且autolayout系统尊重具有较低优先级的约束。