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

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

有什么方法可以处理吗?

【问题讨论】:

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

标签: ios iphone objective-c ios7 ipod


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2010-10-28
    • 2013-09-25
    相关资源
    最近更新 更多