【问题标题】:Android VIEW GONE equivalent in iosios中的Android VIEW GONE等价物
【发布时间】:2017-07-16 18:20:06
【问题描述】:

在 Android 中,如果我们尝试将 gone 分配给视图的可见性,则视图占用的空间将被下面的视图占用。

如果我们将 Invisible 分配给视图的可见性,则视图占用的空间将被隐藏,并且空间仍然存在。

那么如何在 iOS 中做到这一点?

如何在 iOS 自动布局中做到这一点?

我们是否有可能以模仿 gone 的方式更改约束?

我很困惑,如何使它成为可能?

当然,我可以将视图框架更改为下一个视图的框架,但我不能对以下所有视图执行此操作...因为它也涉及自动布局约束。

帮助我了解如何实现这一目标?

【问题讨论】:

  • 或许您可以尝试将其高度宽度设置为零?
  • 是的,在某些情况下,只需将高度设置为零。实际的答案是 iOS 中没有等价物。请注意,在开发时,您可以使用评估者愚蠢的“已安装”按钮(谷歌或在情节提要上查找)。该功能正是您想要的,但在 iOS 中没有这样的实际 UIKit 运行时功能,没有。
  • 我看不出有什么理由结束这个问题,这是一个很好的问题。

标签: ios view constraints visibility ios-autolayout


【解决方案1】:

尝试将视图高约束更改为 0,这样依赖于此的其他视图应该像 Android 线性布局中一样工作

更新 1

从 iOS 9.0 开始提供 UIStackView,其作用与 android 中的 LinearLayout 相同。要启用此功能,您可以在 Interface Builder 中选择 2 个或更多视图,然后在底部单击堆栈视图按钮:

【讨论】:

  • 我听不懂...你能解释一下吗?比如在视图或约束中选择什么选项以及在哪里选择高约束到 0
  • 您可以将高度约束添加到您需要隐藏的视图中,然后将该约束绑定到您的 viewController(控制 + 拖动),并且当您想让该视图消失时,只需发送常量该约束为 0
  • @Appu 如果您不想再次显示视图,可以从视图中删除,请在要删除的视图中使用 removeFromSuperview() 方法
  • 但是已经分配给视图的约束会发生什么......基本上我想将底部的视图移动到另一个视图所在的位置......并且它不应该中断UI 约束逻辑
【解决方案2】:

如果您的应用目标高于ios 9.0,那么您可以使用UIStackView 来满足您的要求。请在下面找到教程的链接。

https://developer.apple.com/reference/uikit/uistackview

https://www.raywenderlich.com/114552/uistackview-tutorial-introducing-stack-views

【讨论】:

  • 不幸的是我必须支持 iOS 6
猜你喜欢
  • 2014-09-13
  • 1970-01-01
  • 2018-05-18
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2011-04-26
  • 2012-08-30
  • 1970-01-01
相关资源
最近更新 更多