我滚动时可以将表格的tableHeaderView位置固定吗?
我有一个表视图,并已附加到它的tableHeaderView一个UISegmentedControl。 我怎样才能使tableHeaderView是固定的,以便我可以随时查看UISegmentedControl在相同的位置,即使当我滚动表视图?
tableView:ViewForHeaderInSection:
是你的select来实现你的任务。 在普通的表格中,这将看起来像地址簿应用程序中的第一个字符的名字,但你会有你的分段控制
我build议将UISegmentedControl放置在UITableView顶部的单独视图中,而不是放在tableHeaderView中。 你可能也想设置yourTable.bounces = NO;
为了保持标题视图弹跳,当你到达表的顶部。
首先降低桌面视图的框架(使桌面上的空间)。 然后在scrollViewDidscroll期间,正确地修复tableviewheader,所以它不会滚动。
那是它的总结。
要扩展@ mskw的答案:
您可以使用UITableViewController(保持UIRefreshControl支持和键盘避免等细节)。 你只需要在一个普通的视图中embedded你的工具栏,并将其放置在你的tableHeaderView中。 然后实现这个滚动视图的委托方法来locking。
#pragma mark - UIScrollViewDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGRect rect = self.toolbarContainerView.frame; rect.origin.y = MIN(0,scrollView.contentOffset.y + scrollView.contentInset.top); self.toolbarContainerView.frame = rect; }
请注意,如果您也使用节标题,则必须将这些视图发送到您的tableHeaderView之后,否则它们将浮在tableHeaderView之上。