iOS 双视图控制器在页面上一起滚动
Posted
技术标签:
【中文标题】iOS 双视图控制器在页面上一起滚动【英文标题】:iOS dual view controllers scroll together on a page 【发布时间】:2016-04-11 21:33:51 【问题描述】:抱歉,我是 Objective c / ios 开发的新手。
所以我有两个视图控制器在一个用 Objective C 编写的 iOS 页面上显示不同的视图。
视图 1 是一个静态页面。 View 2 是一个可滚动列表(UICollectionViewDataSource),我打算在其中实现无限滚动。
现在视图 1 按预期上下滚动。视图 2 有时取决于您如何点击屏幕滚动与视图 1 一起滚动(它们一起上下移动),有时它在视图控制器 1 下滚动。如何创建它们一起滚动的永久行为?我希望它们像连接一样移动(就好像我正在滚动一个网页,该网页有一个可以向下滚动的表格)。
我四处搜索(我可能使用了错误的搜索词),但我看到的一切都与在两个或多个视图控制器之间切换有关。 (例如Swipe between two UIViewControllers' views)
如果不清楚我想要以下行为:
原始页面:
xxx
xyx
xxx
111
222
向下滚动:
xyx
xxx
111
222
333
继续滚动:
xxx
111
222
333
444
这种情况有时会发生,但我也看到了:
xxx
xyx
xxx
222
333
甚至:
xxx
xyx
xxx
(background color blank space)
111
222
它看起来明显不连贯。
【问题讨论】:
"所以我在一个 iOS 页面上有两个视图控制器" 不,你没有。视图控制器不是出现在界面中的东西。它是一个控制器,而不是一个视图。 为什么不把整个东西放在一个tableView中呢? @Jef 所以把静态页面放在标题中?表格视图? 当然。将零行放在第 0 节中,并将其(第 0 节的)标题视图用于上部容器。 【参考方案1】:我没有对此进行编码,但我有一些想法。首先,我认为您将不得不挂钩表视图使用的滚动视图。在每个控制器中,我将为 UIScrollViewDelegate
方法添加覆盖,以便您可以检测到滚动。然后在这些方法中,更新另一个表视图的滚动视图位置。
这将是我的第一个方法。
【讨论】:
以上是关于iOS 双视图控制器在页面上一起滚动的主要内容,如果未能解决你的问题,请参考以下文章