Twitter个人资料页面iOS Swift解剖(UIScrollView中的多个UITableViews)

在这里输入图像说明

嗨…他们是怎么实现这个的? 有Twitter教程页面的几个教程。 但他们不处理所有的可能性…第一…当你滚动顶部或底部的任何地方,顶视图开始滚动,直到分段控制,到达页面的顶部…然后滚动不停止和可下载开始滚动,直到接触和中途的tableview开始dynamic加载其他行…所以我不认为他们静态设置scrollview的内容

第二件事他们如何处理子表…他们containerView? 如果是这样,那么结构会是这样的

ScrollView TopView (User Info) Segmented Controll scrollView(to swipe right or left changing tables) ContainerView For TWEETS ContainerView For TWEETS & REPLIES ContainerView For MEDIA ContainerView For LIKES 

我对吗? 所以他们如何处理子表和顶部滚动视图之间的滚动来实现基于滚动的顶视图位置变化…

这是令人兴奋的

这是我如何Handel嵌套ScrollViews …我做了一个childDidScroll协议和我的孩子tableviews实现,并在我的个人资料页我可以接收所有的child didscroll事件,然后在childDidScroll方法:

  //if child scrollview going up if(scrollView.panGestureRecognizer.translation(in: scrollView.superview).y > 0) { //check top scrollview if it is at bottom or top //then disable the current scrollview if mainScrollView.isAtBottom && scrollView.isAtTop{ scrollView.isScrollEnabled = false }else{ //else enable scrolling for my childs featuresVC.tableView!.isScrollEnabled = true categoriesVC.tableView!.isScrollEnabled = true shopsVC.tableView!.isScrollEnabled = true } print("up") } else { if mainScrollView.isAtTop { scrollView.isScrollEnabled = false mainScrollView.scrollToBottom() }else{ featuresVC.tableView!.isScrollEnabled = true categoriesVC.tableView!.isScrollEnabled = true shopsVC.tableView!.isScrollEnabled = true } print("down") } 

但是这个解决scheme有一些缺点… …其中之一是,当第一个孩子scrollview是在顶部或button,应该有两个尝试调用我的父scrollview处理滚动,在第一次尝试我禁用子滚动视图,在第二次尝试父scrollview处理滚动

**我怎么能说,当你,我的孩子,滚动,检查如果你的父母是在顶部,然后让他处理滚动,当他触摸底部,你可以处理保持滚动,或告诉父滚动,如果如果你或你的孩子起床滚动,首先你处理滚动,当你底部富有(用户信息不可见),让你继续滚动你的孩子**(如果用户信息是可见的)

我相信你大多是正确的,除了最上面的滚动视图。

在最近的一个应用程序中,我在本教程中实现了类似的内容

基本上,诀窍是有一个类是底部UITableView的滚动委托,监听scrollViewDidScroll修改,并修改UITableViewTopView的顶部插入。

我会使用的结构是这样的:

 Topview ScrollView (horizontal scroll) Segmented Control ScrollView (horizontal, paging scroll) UITableView UITableView UITableView UITableView 

这是令人兴奋的,你完全正确。 看起来很简单