我有一个UITableView,如下图所示:
Before scroll:
| |
| |
| | < Clear cell, showing view below table
| |
|---------|
| section | < Section header
|---------|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
After scroll:
| |
| |
| 1 | < Don't want to see these cells above the section
| 2 |
|---------|
| section | < Section header
|---------|
| 5 |
| 6 |
我在第一部分使用了一个透明单元格,因为我希望人们甚至可以从屏幕顶部滚动表格。
如何确保部分标题上方的单元格不可见?
答案 0 :(得分:1)
我已经实现了这个方法,让我的tableview在向上滚动时停在单元格1,也许你可以根据你的场景进行调整。
int start;
int stop;
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
NSArray *paths = [self.tableView indexPathsForVisibleRows];
@try{
start = [[paths objectAtIndex:0] row];
}
@catch (NSException* NSRangeException) {
NSLog(@"exception");
}
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSArray *paths = [self.tableView indexPathsForVisibleRows];
@try{
stop = [[paths objectAtIndex:0] row];
}
@catch (NSException* NSRangeException) {
NSLog(@"exception");
}
if(stop == 0 && start > 1){
[UIView animateWithDuration:0.35 animations:^{
[scrollView setContentOffset:CGPointMake(0, 44)];
}];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == 0){
self.tableView.contentOffset = CGPointMake(0, 44);
}
......
}