Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 异步滚动并添加搜索栏_Ios_Iphone_Objective C_Ios7_Ipod - Fatal编程技术网

Ios 异步滚动并添加搜索栏

Ios 异步滚动并添加搜索栏,ios,iphone,objective-c,ios7,ipod,Ios,Iphone,Objective C,Ios7,Ipod,我有一个应用程序,其中有一个右栏按钮项,它将搜索栏添加为标题视图。这很好,但是当表视图滚动时,不会发生这种情况。它仅在表视图停止滚动时添加 有什么办法处理这个问题吗?如果主线程很忙,它不会响应事件,请使用GCD将其添加到队列中 检查滚动时是否调用此函数。如果是,那么简单地使用GCD将解决您的问题 -(void)userTapOnRightBarButton{ NSLog(@"Main thread response to touch during scrolling"): dis

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


有什么办法处理这个问题吗?

如果主线程很忙,它不会响应事件,请使用GCD将其添加到队列中

检查滚动时是否调用此函数。如果是,那么简单地使用GCD将解决您的问题

-(void)userTapOnRightBarButton{ NSLog(@"Main thread response to touch during scrolling"): dispatch_async(dispatch_get_main_queue(), ^{ [self addSearchBar]; }); } -(void)userTapOnRightBarButton{ NSLog(@“滚动期间主线程对触摸的响应”): dispatch\u async(dispatch\u get\u main\u queue()^{ [自动添加搜索栏]; }); }
这听起来像是在动态添加搜索栏。是用户在做滚动,还是您在用编程方式做滚动?据我所知,用户界面的更改需要主线程,而某些东西(滚动)阻塞了主线程。您需要给UI一个机会进行更改。我需要日历应用程序的具体工作方式。据我所知,两者都在主线程上运行。有没有办法克服这个问题?您需要“暂停”代码执行足够长的时间,以便UI在主线程上获得一些处理时间来更新UI。通常,如果您在UI中调用更改某些内容,直到您的代码放弃对主线程的控制,它才真正对用户显示(生效)。我需要查看更多您的代码,以建议如何调整您的代码以允许用户看到更改。我通过设置TableView的contentOffset解决了这个问题。这将停止滚动,主线程将被释放。