【问题标题】:UITableview frame changes after scrolling thanks to Autolayout由于自动布局,UITableview 框架在滚动后发生变化
【发布时间】:2016-04-01 21:01:42
【问题描述】:

我正在开发一个应用程序,其中我在 UIScrollview 中有一个 UITableView。

TableView 将显示当前玩家所在的游戏,它位于 UIScrollView 中。我为每个游戏动态地将单元格添加到 UITableView,但是当我滚动 UIScrollView 时,其中的 tableview 会迅速恢复到它在故事构建器中设置的大小。

这是因为自动布局,当我禁用它时,它就不会再发生了。但是,我确实喜欢我的应用程序中其他视图的自动布局。所以我的问题是,我该如何解决这个问题?

也许有人可以帮助我走上正轨。

谢谢

编辑

我想我必须多解释一下我的情况,我会用一张图片来显示正在发生的事情

Explanation

滚动前后。

如您所见,我使用滚动视图是因为可以有很多游戏,因此您必须向下滚动才能看到所有游戏。 TableView 只是用来保存数据,滚动是禁用的。滚动显示“JOUW BEURT”的 TableView 后,会恢复到 Storybuilder 中设置的大小。这是因为我说的自动布局,但我不知道如何解决这个问题。

【问题讨论】:

  • 一个UITableView 是一个UIScrollView。除了UIScrollView 中的UITableView 之外,您还有其他内容吗?如果没有,您将添加一个不需要的视图。如果你这样做,你的约束和/或相关代码是什么?
  • 加一些截图会更好。
  • @Gavin 我的回答好运吗?
  • @Gavin,你有没有找到一个解决方案,在滚动视图中有一个表格视图,并使表格视图的框架(或 contentSize)不改变?我仍然有这个问题。

标签: ios swift autolayout


【解决方案1】:

您不应该将 tableview 放在滚动视图中,因为 tableview 本身包含滚动视图并会导致问题,就像您在滚动视图中有滚动视图时看到的一样。

删除滚动视图,这应该可以解决您的问题。如果您想将内容放在 tableview 上方或向下滚动以查看 tableview 单元格等,请考虑在 tableview 上方添加一个 tableview 标题视图。

【讨论】:

  • 是的,去掉多余的滚动视图,让整个屏幕变成表格视图。然后将您的两个按钮添加为表格视图标题视图,该视图将放在整个表格视图上方。然后,当您向下滚动时,它会如您所愿,不会出现滚动问题。
  • 好吧,我会试试的,并接受你的答案,我得到它的工作。感谢您的提示;)
  • 没问题,很高兴能帮上忙
  • 如果您在添加表格视图标题视图时需要帮助,您可以在情节提要中通过将 uiview 拖动到表格视图 (stackoverflow.com/questions/7841167/…) 上方或以编程方式完成此操作
  • 如果我想要一个带有多个表视图的滚动视图怎么办?滚动视图水平滚动,表格视图垂直滚动。
【解决方案2】:

为什么将 UITableView 放在 UIScrollView 中?
检查下面

  1. 检查您的constraintsUITableViewUIScrollView
  2. UITableView 放在UIScrollView 中有点奇怪

编辑 您只需要删除滚动视图并启用表格视图的滚动功能。这将解决它

【讨论】:

    【解决方案3】:

    UITableView 已经是 UIScrollView

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      相关资源
      最近更新 更多