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 的动画不一致