【问题标题】:IOS Tableview support all screens and Landscape screenIOS Tableview 支持全屏和横屏
【发布时间】:2015-02-11 13:40:06
【问题描述】:

我在故事板或带有自动布局的 XIB 中创建了一个 UIViewControler。

当我将 UITableView 添加到视图控制器时,它不能正确支持所有屏幕,甚至也不支持纵向/横向屏幕。

我附上了我的故事板屏幕。

我是 iOS 初学者,所以我不知道如何设置约束。

请有人建议最好的教程来完成这项工作或提供一个简单的示例应用程序。

仅供参考:我使用的是 Xcode 6.1 和 Objective-C

谢谢!

【问题讨论】:

  • 您期待什么样的输出以及它给出的错误输出是什么?这些信息对我们有很大帮助...
  • @mohanraj 我认为这个链接可以帮助你很多 raywenderlich.com/83276/beginning-adaptive-layout-tutorialappcoda.com/introduction-auto-layout。谢谢
  • @FahimParkar 如果我将 tableview 大小设置为宽度 320,它也会在横向屏幕上显示宽度为 320 的内容。但我想动态改变宽度和高度,还需要支持所有设备的屏幕尺寸。
  • 您不想设置UITableView 的宽度。您想使用约束将其边缘“粘合”到某些其他方面。在上面的场景中,您看起来希望它占据整个屏幕的大小。因此,您需要在UITableView 与其父视图之间设置零间距的约束。选择UITableView后,点击屏幕底部看起来像TIE战斗机的按钮(“|-[]-|”)
  • 嗨@mbm29414,我已经尝试像你的建议那样设置约束,但它不起作用。你能建议我如何正确设置约束吗?

标签: ios objective-c uitableview landscape-portrait


【解决方案1】:

听起来您在向UIViewController 添加约束时遇到了问题。

这是 Ray Wenderlich 网站上的一个很好的 primer on AutoLayout。在 Interface Builder 中使用 AutoLayout 是一个很好的方法。

一旦你这样做了,请考虑阅读this article,了解为什么使用 Interface Builder。这篇文章终于说服了我走纯代码路线,我很享受结果。

无论如何,对于您的特定示例,这里有一些屏幕截图,用于将约束添加到您的 UITableView

  1. 当您将UITableView 添加到您的UIViewController 时,您可能会将其对齐,以便它与其包含的视图之间的所有边缘都匹配。在这种情况下,当您单击“TIE Fighter”按钮(真正称为“Pin”按钮)时,您应该会看到以下内容:

  2. 此时,您只需单击 4 个“struts”即可将这些约束添加到您的UITableView。当你这样做时,它们会从浅灰色变为红色,如下所示:

  3. 此时,只需单击“添加 4 个约束”按钮即可完成工作。您的 UITableView 现在应该被“固定”到所有 4 个边缘,使其在旋转过程中自动调整大小。

【讨论】:

  • 我没有禁用“自动布局”,在我禁用后,它的工作很好。而且比你多 mnm29414。
  • @Prabhu 很高兴为您提供帮助。
  • 在从 viewcontroler 的文件检查器中禁用“自动布局”后,它工作得很好,并且可以让你看到每个人。特别是mbm29414
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多