0

我有一个 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    |

我在第一部分使用了一个透明单元格,因为我希望人们甚至能够从屏幕顶部滚动表格。

如何确保部分标题上方的单元格不可见?

4

1 回答 1

1

我已经实现了这个方法,让我的表格视图在向上滚动时停止在单元格 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);

        }
    ......
    }
于 2013-09-12T18:05:56.797 回答