设置contentInset时MJRefresh下拉刷新异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置contentInset时MJRefresh下拉刷新异常相关的知识,希望对你有一定的参考价值。

参考技术A 需求:
为了实现tableView和collectionView顶部插入一个tip label,可随着滚动而滑出界面

做法:
(如果collectionView有headerView该多好,但只有tableView才有...)

bug:
设置了tableView和collectionView的contentInset.top值,发现collectionView下拉刷新时,MJ刷新控件 与 tipLabel展示位置重叠了

solution:
flowLayout.sectionInset.top 或者 flowLayout.headerInset, 均可以.
(CHTCollectionViewWaterfallLayout)

UiTableview ContentInset

【中文标题】UiTableview ContentInset【英文标题】: 【发布时间】:2012-01-31 13:35:30 【问题描述】:

我正在开发非常小的应用程序。在这个应用程序中,我使用 UIrootviewController 的表格视图来显示其中的一些内容。我希望该内容显示在特定位置,因此我正在设置它的 contentInset。当我在 viewDidLoad 或 xib 中执行此操作时,它第一次没有显示任何效果。我已经在 shouldAutorotateToInterfaceOrientation 函数中编写了它,它在方向更改后给了我正确的位置,但第一次它在同一位置显示表格内容,无论内容插入值是什么

这是我设置内容插入的代码

self.tableView.contentInset = UIEdgeInsetsMake(120, 150, 0.0, 0.0);

我在 viewDidLoad 中编写了这段代码,并且 shouldAutorotateToInterfaceOrientation 但是当应用程序启动时它没有显示任何效果。有没有其他方法可以实现这一点。

我什至尝试过 setFrame,但没有成功。

【问题讨论】:

【参考方案1】:

我认为您可能对使用什么方法感到困惑。如果你想设置视图的位置和大小,你应该设置它的frame

【讨论】:

【参考方案2】:

将您的代码放入 viewWillAppear 方法中。

【讨论】:

【参考方案3】:

在 viewDidLoad 或 viewWillAppear 中尝试以下操作:

self.tableView.contentInset = UIEdgeInsetsMake(120.0f, 150.0f, -120.0f, -150.0f);

【讨论】:

以上是关于设置contentInset时MJRefresh下拉刷新异常的主要内容,如果未能解决你的问题,请参考以下文章

当键盘出现时,我应该如何正确设置 UITextView 的 contentInset

iPhone:在为导航栏显示/隐藏设置动画时无法为 contentInset 设置动画

设置 contentInset 并且 tableViewHeader 中的 UITextField 变为活动状态时 UITableView 向下滚动

iOS 下拉刷新和上拉加载更多效果原理

WKWebView+contentInset 使内容大小错误

UITableView ContentInset 和 ContentOffset