UITableview刷新单元格在部分标题下滚动

Posted

技术标签:

【中文标题】UITableview刷新单元格在部分标题下滚动【英文标题】:UITableview refreshing cells scrolling under section header 【发布时间】:2016-01-24 16:16:32 【问题描述】:

我正在使用UzysCircularProgressPullToRefresh 来刷新我的表格视图。 我的 UITableView 有 1 个带有标题的静态部分,我希望它始终固定在表格的顶部(这就是我不想使用 UITableViewStyleGrouped 的原因)。 当 UITableView 处于刷新状态时,我开始滚动它,单元格在标题部分下滚动,这作为设计非常糟糕。 请检查图像

您可以通过将以下内容添加到项目中来自己测试它:

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

    return @"Header Section";

我试图找到一个解决方案,但经过大量搜索后没有找到任何解决方案。 谁能帮我解决这个问题?如何以任何方式解决这个设计问题?

【问题讨论】:

【参考方案1】:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
    CGFloat navBarMaxY = CGRectGetMaxY(self.navigationController.navigationBar.frame);
    if (scrollView.contentInset.top > navBarMaxY) 
        if (scrollView.contentInset.top > -scrollView.contentOffset.y) 
            UIEdgeInsets insets = scrollView.contentInset;
            insets.top = MAX(-scrollView.contentOffset.y, navBarMaxY);
            scrollView.contentInset = insets;
        
    

【讨论】:

在纵向上效果很好,但在横向模式下仍然面临问题 这是一个例子。我以为你会自己继续。我更新了我的答案。 你太棒了 :) 谢谢【参考方案2】:

我自己也遇到过这个问题。

对我来说,解决方案是拖放UITableView,所以它不是我认为的第一个元素。

https://***.com/a/27815006/391605

笨蛋,嘿?试一试。

希望这会有所帮助。

【讨论】:

我没有在我的项目中使用 xib。都是用代码写的。你也可以在 GitHub 的 UzysCircularProgressPullToRefresh 项目中查看。 即使您没有使用 .xib 文件,您所看到的确实与我看到的 Xcode 错误相同...所以,它可能仍然值得 插入 作为 UIViewController 中第一个子视图项的组件。

以上是关于UITableview刷新单元格在部分标题下滚动的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 UITableView 单元格在滚动时重叠?

UITableView 单元格在向下滚动然后备份后消失

UITableView 选定的单元格在滚动时不会保持选中状态

用于 UITableView 的自定义 XIB 单元格在滚动时卡住/卡住

UITableViewAutomaticDimension 单元格在滚动或拉动刷新后调整大小

UICollectionView 的单元格在滚动后并不总是刷新