【问题标题】:Using Auto layout with hidden views使用带有隐藏视图的自动布局
【发布时间】:2014-04-04 09:47:52
【问题描述】:

我有一个带有UIScrollView 的视图控制器。在那个滚动视图里面我有两个UIViewsviewA 位于 viewB 上。我在这个项目中使用 Xcode 5 和自动布局。我想做的是当 viewA 被隐藏时,将 viewB 移动到 viewA 所在的顶部(从技术上讲,仍然坐着,只是隐藏了)。

我看了这个 SO 答案:How to use auto-layout to move other views when a view is hidden?

但是它并没有真正帮助我。我将一个垂直间距恒定的 IBOutlet 连接到滚动视图的顶部,并在隐藏 viewA 时将其设置为 0.0f。但是,它根本没有改变我的 UI。

【问题讨论】:

  • 您可以在更改垂直间距值的位置发布代码吗?这个垂直间距与哪个元素对应?

标签: ios xcode5 autolayout


【解决方案1】:

首先为两个子视图获取 SuperView NSlayoutConstraints Outlets 的 Top Space,然后执行以下操作:-

[self.aView setHidden:YES];
if([self.aView isHidden])
{
    self.bViewTopConstraint.constant = self.aViewTopConstraint.constant;
}

使用这个第二个 UiView 将转到第一个 UIView 的位置。

对于 Scrollview,您必须正确设置约束值。无需设置任何内容大小。一旦你设置了约束,滚动视图将自动工作。 检查随附的屏幕截图。

【讨论】:

  • 谢谢。这让我走上了正确的轨道。但是我的 scrollView 不再起作用。据我了解 - 使用 AutoLayout 时设置 UIScrollView 的 contentSize 不再适用。那么我应该怎么做才能让它滚动呢?
猜你喜欢
  • 2016-12-18
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多