【问题标题】:Xcode 5 Auto Layout - Embedded TablesXcode 5 自动布局 - 嵌入式表格
【发布时间】:2013-10-15 15:08:30
【问题描述】:

我有一个UIScrollView,其中嵌入了几个UITableViews。我想允许每个表格根据需要扩展其高度以显示其所有单元格。滚动视图的框架占据了整个屏幕,所以它的contentSize.height 需要扩展以适应最大的表格(我认为这是默认行为,但我提到它以防我不正确)。这一切都可以在我的故事板上完成吗?或者,如果我需要添加代码来执行此操作,我找到了 this tutorial,但它适用于 iOS 6 - 对于 iOS 7,此约束内容的任何代码是否已更改?

【问题讨论】:

  • 我有点厌烦问这个问题,但为什么要投反对票?

标签: ios objective-c xcode ios7 autolayout


【解决方案1】:

如果您事先知道每个表格占用了多少空间,您可以纯粹在情节提要中完成,但是因为每个 UITableView 也是一个滚动视图,所以 UITableView 的默认行为是用内容填充分配的大小并在存在时滚动溢出了。

如果您在设计时不知道表格的高度,则需要在运行时设置它们。参见Autolayout a UIScrollView to fit content including subviews and grouped tables 的例子,简短的回答是给你的表格添加一个高度约束,将它作为一个出口拖到你的控制器中,然后在你知道它的时候设置高度。

【讨论】:

  • 是的,我需要高度是动态的,所以看起来我必须用代码来做,就像我担心的那样。但是谢谢,我不知道您可以将约束设置为出口。所以看起来这仍然会有点痛苦(在自动布局之前也很头疼),但至少我应该只需要做一次,而不必担心旋转或不同的屏幕尺寸或任何东西。谢谢,一旦我确认它有效,我会投票并接受。
【解决方案2】:

可以通过两种方式完成。通过代码(提及位置)手动移动 UI 元素并在轮换中或通过在自动布局中提及约束来覆盖它。

此链接http://www.doubleencore.com/2013/09/auto-layout-updates-in-ios-7/ 提供了 ios7 自动布局的详细信息。

【讨论】:

  • 是的,我在发帖前自己研究这篇文章时看到了这篇文章。不幸的是,它没有任何关于如何设置高度以调整大小或如何在代码中执行任何操作的信息。我想让它与自动布局一起使用的原因是我不必担心旋转之类的事情。
猜你喜欢
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多