3 回答
TA贡献1817条经验 获得超14个赞
我解决此问题的方法是contentOffset根据(extends )contentInset中的来调整,如下所示:UITableViewControllerDelegateUIScrollViewDelegate
- (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部分标题高度匹配,则手指感觉似乎是完美的或接近完美。}
TA贡献1921条经验 获得超9个赞
如果是我这样做,我将利用一个事实,即Plain风格的UITableViews具有粘性标头,而Grouped风格的UITableViews没有标头。我可能至少会尝试使用自定义表格单元格来模拟分组表格中普通单元格的外观。
我实际上没有尝试过,因此可能无法正常工作,但这就是我建议的做法。
TA贡献1875条经验 获得超5个赞
我知道来晚了,但是我找到了最终的解决方案!
您要执行的操作是,如果有10个节,则让dataSource返回20。节标题使用偶数,节内容使用奇数。像这样的东西
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section%2 == 0) {
return 0;
}else {
return 5;
}
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if (section%2 == 0) {
return [NSString stringWithFormat:@"%i", section+1];
}else {
return nil;
}
}
- 3 回答
- 0 关注
- 464 浏览
添加回答
举报