异步滚动和添加搜索栏

Posted

技术标签:

【中文标题】异步滚动和添加搜索栏【英文标题】:Scroll and add Search Bar asynchronously 【发布时间】:2014-04-07 16:42:19 【问题描述】:

我有这个应用程序,其中我有一个右栏按钮项,它将搜索栏添加为标题视图。这工作正常,但是当表格视图滚动时,这不会发生。它仅在表格视图停止滚动时添加。

有什么方法可以处理吗?

【问题讨论】:

这听起来像是在动态添加搜索栏。用户是在滚动还是以编程方式滚动?据我所知,用户界面的更改需要主线程,并且某些东西(滚动)阻塞了主线程。您需要让 UI 有机会进行更改。 我需要日历应用程序的工作原理。我知道,两者都在主线程上运行。有什么办法克服这个问题吗? 您需要“暂停”代码执行足够长的时间,以便 UI 在主线程上获得一些处理时间来进行 UI 更新。通常,如果您调用更改 UI 中的某些内容,它实际上不会向用户显示(生效),直到您的代码放弃对主线程的控制。我需要查看您的更多代码,以便就如何调整您的代码以允许该更改显示给用户提出建议。 我通过设置TableView的contentOffset解决了这个问题。这将停止滚动并且主线程得到释放。 【参考方案1】:

主线程忙时不响应事件,使用GCD将其添加到队列中

检查是否在滚动时调用此函数。如果是,那么只需使用 GCD 即可解决您的问题。

-(void)userTapOnRightBarButton NSLog(@"滚动时主线程响应触摸"): dispatch_async(dispatch_get_main_queue(), ^ [自我添加搜索栏]; );

【讨论】:

以上是关于异步滚动和添加搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

在 UISearchController 下添加水平滚动过滤器选项

前端Vue项目:旅游App-(17)home:页面滚动显示搜索栏节流时间同步

问题:滚动表格视图,然后选择搜索栏(iphone)

搜索结果在状态栏下方明显滚动

滚动表视图然后突然单击搜索栏会导致应用程序崩溃?

在 UISearchController 中搜索时无法在 tableView 中滚动