UITableViewcontentInset:当滚动表格到顶部时,行在第一个标题上方仍然可见

Posted

技术标签:

【中文标题】UITableViewcontentInset:当滚动表格到顶部时,行在第一个标题上方仍然可见【英文标题】:UITableViewcontentInset: when scrolling the table to the top, rows are still visible above first header 【发布时间】:2016-07-20 11:47:01 【问题描述】:

我有一个由 1 个标题和 1 行依次组成的表格:

Header
Row
Header
Row

我已经设置contentInset来降低表格内容的开始位置:

self.detailTableView.contentInset = UIEdgeInsetsMake(30.0, 0.0, 0.0, 0.0);

它工作得很好,但是,当滚动表格时,表格行的内容在第一个标题上方可见。它们不会消失,而是在 30 像素的顶部边缘内可见。如何隐藏它们?以便滚动正常工作。

【问题讨论】:

能否分享一下问题的截图?我不清楚 【参考方案1】:

我假设您在表格视图中有粘性标题。

如果你想在顶部添加填充,你可以设置表头视图:

tableView.tableHeaderView = UIView(frame:CGRect(x: 0, y: 0, width: view.frame.width, height: 30))

【讨论】:

【参考方案2】:

使用多个这样的部分来实现你想要的

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
      return 2 ;
 

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
      if (section==0)
      
             return [array1 count];
      
      else
             return [array2 count];
      
 

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
      if(section == 0)
           return @"Section 1";
      else
           return @"Section 2";
 


 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 


      static NSString *CellIdentifier = @"Cell";

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) 
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
      

 if (indexPath.section==0) 
     ObjectData *theCellData = [array1 objectAtIndex:indexPath.row];
     NSString *cellValue =theCellData.category;
     cell.textLabel.text = cellValue;
 
 else 
     ObjectData *theCellData = [array2 objectAtIndex:indexPath.row];
     NSString *cellValue =theCellData.category;
     cell.textLabel.text = cellValue;
 
     return cell;        
 

【讨论】:

我不确定我们是否相互理解。我的问题是我需要在滚动后隐藏第一个标题上方的表格内容。我不想改变表格的结构。 如果你使用section,它会自动隐藏header

以上是关于UITableViewcontentInset:当滚动表格到顶部时,行在第一个标题上方仍然可见的主要内容,如果未能解决你的问题,请参考以下文章

iOS7 和 iOS8 中的 UITableView contentInset 不同

uitableview contentInset 问题

UITableView contentInset 的动画不一致

UITableView contentInset 使表格视图除了垂直滚动外还水平滚动

当幸福来敲门英文PPT相关素材

python当密码正确输入,当密码错误时