【问题标题】:UIScrollView behavior is different in iOS8iOS8 中的 UIScrollView 行为不同
【发布时间】:2014-10-22 21:30:21
【问题描述】:

我有以下布局

所以它基本上是一个占据整个屏幕的滚动视图。内容大小设置为三倍宽度和相同高度。在滚动视图内部 - 有容器视图和三个表视图 - 每页一个。最初只有中间的表格视图可见。

这允许我使用滚动视图水平滚动在表格之间导航并在中间表格内垂直滚动。

我知道 Apple 并不真正建议将 UITableView 放在 UIScrollView 中,但在这种特殊情况下,我不知道如何以不同的方式实现它,直到 iOS8 一切正常。

UIScrollView 无法识别任何垂直滚动(因为内容高度等于滚动视图高度)并且这些手势直接传递给 UITableView。

但从 iOS8 开始 - 这被打破了。 UIScrollView 将允许一些垂直滚动并基本上拦截发送到 UITableView 的滚动手势。

我创建了一个在 iOS7 中运行良好但在 iOS8 中损坏的简单项目。有人知道如何解决这个问题吗?

项目链接:https://dl.dropboxusercontent.com/u/6402890/TablePaging.zip

【问题讨论】:

  • 我们在同一条船上。在 iOS 8 之前工作正常。现在它坏了。你有什么发现吗??
  • 还没有。今天将与 GM 种子一起工作
  • 我无法弄清楚旧方法有什么问题。但看起来用 UIPageViewController 替换这个手动 UIScrollView 将在 iOS7/8 中正常工作。
  • 这也是我最终解决的问题。与滚动视图中的表格视图相比,这似乎是一种更简洁的方法。
  • 即使滚动视图中的 tableview 正是您使用 UIPageViewController 时得到的。我在那里检查了视图层次结构,它几乎与我手动创建的相同。唯一的区别是他们使用内部 _UIQueueScrollView 或类似的东西

标签: ios cocoa-touch uitableview uiscrollview ios8


【解决方案1】:

如果我在 Interface Builder 中将 ScrollView 的 Class 更改为 UIScrollView,它可以解决部分问题。现在只是 UITableView 上下移动,我左右移动,但还没有摆脱顶部的空间。

【讨论】:

    【解决方案2】:

    我无法解决这个问题,正如我在 cmets 中提到的,必须使用内置的 UIPageViewController 类重写逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 2015-03-26
      • 1970-01-01
      相关资源
      最近更新 更多