我正在尝试构建类似于Twitter的个人资料页面的页面.看起来他们正在使用基本的UITableView.顶部的配置文件只是tableHeaderView.选项卡是SectionRowHeader中的一个UISegmentedControl,以便在滚动时粘贴到顶部.这个tweets只是那个部分的单元格.如果您切换选项卡,似乎他们只是更改底层数据并重新加载表.
但是,如果您使用该页面,您会注意到,更改选项卡会保持先前的滚动位置.如果您在一个选项卡上回滚到顶部,那么当然另一个选项卡必须滚动到顶部,否则它将在标题下方滚动.另外,如果您仔细观察底部部分(推文)有一个滚动条,一旦您开始滚动.所以看来这是它自己的tableview.那么在主页的单元格里面会是新的tableview吗?如果这是他们正在做的,那么它们之间的滚动是无缝的.您可以向上滚动底部部分,只有一个标签固定在顶端,推送即可在其下滚动.
我正在尝试构建类似的结构化页面,但仍然遇到问题.理想情况下,我也希望将这些子选项卡的逻辑分解成单独的视图控制器,以便重用,但是在这一点上,我只想让它工作.
任何人都知道他们使用的结构来设置这样的页面?
解决方法
我99%肯定他们只是在滚动浏览表格时调整滚动指示器插入:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat const visibleHeaderHeight = 0.0; // your logic here UIEdgeInsets const insets = UIEdgeInsetsMake(visibleHeaderHeight,0.0,0.0); self.scrollView. scrollIndicatorInsets = insets; }
另外我很确定他们使用分组的样式表视图由于分段,所以你需要自己构建粘性标题.你也可以在-scrollViewDidScroll中:但是.
如果您想将标签分割成单独的视图控制器,我会推荐以下设置:
有一个容器视图控制器管理包含选项卡的标题视图>使用UIViewController控制器插入主动视图控制器>订阅主动视图控制器的滚动视图的contentOffset并相应地调整滚动指示器插入和粘性标题y位置