MJRefresh
MJRefresh copied to clipboard
设置 navigationItem.searchController = searchController, 循环调用导致崩溃
描述bug 当self.navigationItem.searchController = searchController时候,正在加载的时候,上滑动tableview导致崩溃。 如下几个函数造成死循环 ``
- (void)setMj_insetT:(CGFloat)mj_insetT
- (void)resetInset
- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
**必现/偶发?**
必现
**怎么样重现这个bug**
下拉刷新
**你期望的结果是什么?**
不崩溃
**运行环境**
- iPhone7
- iOS12.3
- Xcode12
**额外的**
最好能提供出现bug的Demo
请提供一个demo
@wolfcon 我就是用项目提供的Demo啊, 在MJTableViewController的ViewDidLoad里面添加如下代码就行了。
MJCollectionViewController* vc = [[MJCollectionViewController alloc] init];
UISearchController * searchController = [[UISearchController alloc] initWithSearchResultsController: vc];
self.navigationItem.searchController = searchController;
我也遇到类似情况了,刷新跟hidesSearchBarWhenScrolling属性冲突。 hidesSearchBarWhenScrolling可能会不断更改ContentSize,导致循环调用
@ygfygf 方便更详细的描述一下复现的步骤吗?
@ygfygf 你是否使用了Auto呢, 你切换成Normal试下
是的,我也遇到了,应用在 uicollectionview 就会进入死循环
怎么解决啊,有大佬知道吗
self.navigationItem.hidesSearchBarWhenScrolling = NO; 这样子就好了。setMj_insetT方法被循环调用了。设置这个属性后导航栏搜索框固定位置,就不会出现循环调用了