Ios 如何删除隐藏图像的空间?

Ios 如何删除隐藏图像的空间?,ios,uiimageview,autolayout,Ios,Uiimageview,Autolayout,我被卡住了,我不知道如何删除隐藏图像的间距。目的是若标志为真,则显示UIImage;若标志为假,则隐藏UIImage,但该隐藏图像的空间仍然存在 我正在使用自动布局 如果您使用的是自动布局和故事板,则可以将创建IBOutlet设置为控制器类的属性。然后将其连接到UIImage的宽度约束。在代码中,当UIImage被隐藏时,可以将IBConstraint设置为0。显示时,将IBConstraint设置回正常宽度 (在Controller.h中) (在Controller.m中)(伪代码) 在序列图

我被卡住了,我不知道如何删除隐藏图像的间距。目的是若标志为真,则显示UIImage;若标志为假,则隐藏UIImage,但该隐藏图像的空间仍然存在

我正在使用自动布局


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

(在Controller.h中)

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

在序列图像板中设置的标签左侧和图像右侧之间还应存在水平约束

在这里,您可以选中“宽度”框以添加宽度约束


此处是将引用插座连接到控制器上IBOutlet的位置

如果使用自动布局和故事板,则可以将创建IBOutlet设置为控制器类的属性。然后将其连接到UIImage的宽度约束。在代码中,当UIImage被隐藏时,可以将IBConstraint设置为0。显示时,将IBConstraint设置回正常宽度

(在Controller.h中)

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

在序列图像板中设置的标签左侧和图像右侧之间还应存在水平约束

在这里,您可以选中“宽度”框以添加宽度约束


在这里,您可以将引用插座连接到控制器上的IBOutlet

处理此问题最简单、最有效的方法是使用堆栈视图。 在水平堆栈视图中插入两个图像,堆栈视图将在内部处理间距。可以根据需要调整其他特性,如对齐、间距。
请记住,必须在堆栈视图和相邻图元之间重新建立约束,因为一旦将视图添加到堆栈视图中,所有约束都被清除,最简单、最有效的处理方法就是使用堆栈视图。 在水平堆栈视图中插入两个图像,堆栈视图将在内部处理间距。可以根据需要调整其他特性,如对齐、间距。
请记住,必须在堆栈视图和相邻图元之间重新建立约束,因为一旦将视图添加到堆栈视图中,如果其约束被清除,则所有视图都可以设置self.imageview.frame.size.width=0;self.imageview.frame.size.height=0;这可能会帮助你…它在自动布局中不起作用。我已经试过了@yagneshdobariyacheck here…你可以设置self.imageview.frame.size.width=0;self.imageview.frame.size.height=0;这可能会帮助你…它在自动布局中不起作用。我已经试过了@yagneshdobariyacheck here…这是更好的解决方案,但仅当最低支持版本为9.0+时,因为早期版本中没有StackView。这是更好的解决方案,但仅当最低支持版本为9.0+时,因为早期版本中没有StackView。
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintImageWidth;
if(hidden){
     constraintImageWidth.constant = 0;
}
else{
     constraintImageWidth.constant = 30;
}