【问题标题】:How to remove space of hidden UIImage?如何删除隐藏的 UIImage 的空间?
【发布时间】:2015-08-25 03:24:27
【问题描述】:

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

我正在使用自动布局。

【问题讨论】:

  • 你可以设置self.imageview.frame.size.width=0; self.imageview.frame.size.height=0;这对你有帮助吗....
  • 它在自动布局中不起作用。我已经试过了。 @yagneshdobariya

标签: ios uiimageview autolayout


【解决方案1】:

如果您使用自动布局和情节提要,您可以将创建 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;
}

标签左侧和情节提要中设置的图像右侧之间也应该有水平约束。

您可以在此处选中宽度框以添加宽度约束。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这是更好的解决方案,但前提是支持的最低版本为 9.0+,因为堆栈视图在早期版本中不可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多