当我滚动时,我可以将表格的桌面位置固定吗?

时间:2011-09-15 15:46:24

标签: iphone objective-c ios uitableview

我有一个表视图,并附加到其tableHeaderView一个UISegmentedControl。如何使tableHeaderView固定,以便即使我在滚动表视图时也可以始终在同一位置查看UISegmentedControl?

4 个答案:

答案 0 :(得分:7)

tableView:ViewForHeaderInSection:是您完成任务的选择。在普通表格中,这将在某种程度上看起来像地址簿应用程序的第一个字符名称在部分,但你将有你的分段控制

答案 1 :(得分:1)

我建议将UISegmentedControl放在UITableView顶部的单独视图中,而不是放在tableHeaderView中。您可能还需要设置yourTable.bounces = NO;,以便在到达表格顶部时保持标题视图不会弹跳。

答案 2 :(得分:1)

首先降低tableview的框架(在tableview上方留出空间)。然后在scrollViewDidscroll期间,正确修复tableviewheader,这样它就不会随之滚动。

总结它。

答案 3 :(得分:1)

扩展@ mskw的答案:

您可以使用UITableViewController(保留诸如UIRefreshControl支持和键盘避免等细节)。您只需将工具栏嵌入到普通视图中并将其放在tableHeaderView中。然后实现此滚动视图委托方法以锁定。

#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上。