如何在滚动视图中添加多个UITableviewController?

时间:2015-11-09 07:33:21

标签: ios objective-c cocoa-touch uiscrollview

我想创建一个类似于Twitter的配置文件viewcontroller。我相信它包含3个不同的子UITableviewController,它通过分段控制来保持切换。但是当我滚动子viewcontroller的tableview时,它也会滚动父滚动视图。

有人可以解释如何实现这种行为吗?

4 个答案:

答案 0 :(得分:3)

我完全了解你的问题。问题是,Twitter不是一个例子,但是Snapchat是....

您有一个嵌入UIScrollView(Subclassed)的根视图控制器。在这个子类中,你想要覆盖像这样的手势识别器......

 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (gestureRecognizer.state != 0 && otherGestureRecognizer.state != 1)
{
    return YES;
} else {
    return NO;
}

}

现在你应该可以刷一下tableViewCells,而不是一次拖动所有4个方向。

答案 1 :(得分:2)

  • 你可以做的是制作UIVcrollView的UIVcrollView子视图,然后制作UIScrollView的UIContainerView子视图。
  • 但是通过使用UIContainerView将帮助您分割代码并使用多个UITableViewController
  • 现在添加UITableViewController并将其嵌入UIContainerView。

请查看下面的图片以获取解决方案。还要检查文档大纲中的结构。

使用UIContainerView和UITableViewController

enter image description here

希望它有助于解决您的问题。有任何疑问请告诉我。

答案 2 :(得分:1)

大约三个月前我也看过那个答案。我曾经试图用TableView分页实现它,但没有成功。那些子视图之间的滑动行为不一样,看起来很奇怪。最后,我最终使用了Page View Controller。 除了在控制器之间切换的滑动手势之外,您还可以实现一些按钮或分段控件并调用此功能进行导航:

  

[self.pageViewController setViewControllers:viewControllers方向:方向动画:YES完成:^(BOOL完成){
      }];

答案 3 :(得分:1)

我很确定只有一个表(或集合视图)只需在按下三个按钮之一时切换单元格类型/单元格数据 - 为什么要让它更复杂?

你也可以刷新顶部单元格之外的所有单元格,并且记住滚动偏移量与其他解决方案相比是一件小事......