如何删除隐藏UIImage的空间?

时间:2015-06-10 03:53:22

标签: ios uiimageview autolayout

我坚持认为我不知道如何删除隐藏的UIImage的间距。目的是如果flag为true,将显示UIImage,如果flag为false,则隐藏UIImage,但此隐藏图像的空间仍然存在。

我正在使用自动布局。

enter image description here

2 个答案:

答案 0 :(得分:3)

如果您使用的是自动布局和故事板,则可以设置创建IBOutlet作为Controller类的属性。然后将其挂钩到UIImage的宽度约束。在隐藏UIImage的代码中,将IBConstraint设置为0.显示时,将IBConstraint设置回正常宽度。

(在Controller.h中)

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintImageWidth;

(在Controller.m中)(伪代码)

if(hidden){
     constraintImageWidth.constant = 0;
}
else{
     constraintImageWidth.constant = 30;
}

标签的左侧和故事板中设置的图像的右侧之间也应该存在水平约束。

enter image description here

您可以在此处检查宽度框以添加宽度约束。

enter image description here

您可以在此处将引用Outlet连接到控制器上的IBOutlet

答案 1 :(得分:1)

处理此问题的最简单,最有效的方法是使用堆栈视图。 将图像插入水平堆栈视图中,堆栈视图将在内部处理间距。可以根据需要调整对齐,间距等附加属性。 请记住,您必须重新建立堆栈视图和相邻元素之间的约束,因为一旦将视图添加到堆栈视图中,所有约束都被清除