ios - 更改 UITableView 部分标题的默认滚动行为

标签 ios iphone uitableview cocoa-touch

我有一个包含两个部分的 UITableView。这是一个简单的 TableView 。我正在使用 viewForHeaderInSection 为这些 header 创建自定义 View 。到目前为止,还不错。

默认的滚动行为是,当遇到一个部分时,部分标题会固定在导航栏下方,直到下一个部分滚动到 View 中。

我的问题是:我能否更改默认行为,使节标题不再锚定在顶部,而是与节的其余行一起滚动到导航栏下方?

我是否漏掉了一些明显的东西?

谢谢。

最佳答案

我解决这个问题的方法是根据UITableViewControllerDelegate中的contentInset调整contentOffset(extends UIScrollViewDelegate) 像这样:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
       CGFloat sectionHeaderHeight = 40;
   if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
       scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
   } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
       scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
   }
}

这里唯一的问题是当滚动回到顶部时它会失去一点弹跳。


{注意:“40”应该是您第 0 节标题的准确高度。如果您使用的数字大于您的第 0 节标题高度,您会发现手指感觉受到影响(尝试使用“1000”,您会发现顶部的弹跳行为有点奇怪)。如果数字与您的第 0 节标题高度匹配,则手指感觉似乎是完美或接近完美。

关于ios - 更改 UITableView 部分标题的默认滚动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600816/

相关文章:

ios - TableView重新加载数据的麻烦

ios - 应用程序将终止 : not being called

iphone - 将图像转换为黑白问题 CGContext - iPhone Dev

ios - UIPanGestureRecognizer 更新间隔

iphone - 设置适合不同单元格的文本

iphone - 有没有办法直接下载 iOS 应用程序(不使用应用程序商店)

ios - 无法在 iTunes 中为正在审核的应用程序添加一组测试用户

iPhone应用程序崩溃日志 - 如何获取崩溃日志中的类名和方法名?

ios - Tableview 刷新/重新加载就像在 iOS5 的提醒应用程序中一样

ios - 带有 Parse 对象的 UITableView