我滚动时可以将表格的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之上。