我试图构建类似于Twitter的个人资料页面的页面。看起来他们正在使用基本的UITableView
。顶部配置文件只是tableHeaderView。选项卡是SectionRowHeader中的UISegmentedControl
,因此在滚动时它会粘到顶部。而推文只是该部分内的细胞。如果你切换标签,似乎他们只是在改变基础数据并重新加载表格。
但是,如果您使用该页面,则会注意到更改标签会保留上一个滚动位置。如果您在一个选项卡上滚动回顶部,那么当然另一个选项卡必须滚动到顶部,否则它将在标题下方滚动。此外,如果仔细观察,一旦开始滚动,底部(推文)就会有自己的滚动条。所以看起来这就是它自己的tableview。那么这将是主页单元格内的新表视图吗?如果这是他们正在做的事情,那么滚动在他们之间是无缝的。您可以向上滚动底部,只有当标签固定到顶部时,推文才能在其下方滚动。
我试图建立一个类似的结构化页面,但一直遇到问题。理想情况下,我还希望将这些子选项卡的逻辑分解为单独的视图控制器以供重用,但此时我只想让它工作。
任何人都知道他们用来设置这样一个页面的结构吗?
答案 0 :(得分:0)
我99%肯定他们只是在滚动查看表格时调整滚动指示符插图:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat const visibleHeaderHeight = 0.0; // your logic here
UIEdgeInsets const insets = UIEdgeInsetsMake(visibleHeaderHeight, 0.0, 0.0, 0.0);
self.scrollView. scrollIndicatorInsets = insets;
}
此外,由于切片,我非常确定他们使用的是分组样式表视图,因此您需要自己构建粘性标题。您也可以在-scrollViewDidScroll:
中执行此操作。
如果您想将标签分成单独的视图控制器,我建议您进行以下设置:
UIViewController
包含来插入活动视图控制器contentOffset
并相应地调整滚动指示符插入和粘贴标题y位置答案 1 :(得分:0)
我试图解释一下here。
经过长时间的调查,这就是我实现Twitter的方式 个人资料行为。
- UnderlayScrollView
- MasterScrollView
- 标题ViewController
- 底部ViewController
- PagerTabItems [CollectionView]
- UIPagerController或任何其他水平滚动(羊皮纸,XLPagerTabStrip)。
UnderlayScrollView负责控制滚动手势。 其contentoffset用于调整内部滚动contentOffsets。 底层滚动的contentsize与主滚动的相同 contentsize。
有关更多信息,请参见github上的源代码。 click