描述:
_timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
如上:我使用了NSTimer实现滚动条自动滚动的效果,并将滚动条加入一个viewController页面中,在这个VC中还有其他的操作,如网络请求,跳转什么的,我发现每次我进行网络请求时,滚动条就是卡顿住,直到网络请求完成时,才恢复正常。。。
求大神帮忙解决,给个解决建议。。。(个人分析与网络请求有关系)
解决方案1:
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
解决方案2:runloopMode 类型改一下试试
解决方案3:问题应该出在网络请求上,检查一下是不是使用的同步请求,同步请求会是UI卡顿
解决方案4:耗时任务不要在主线程中进行最好吧.开个子线程就解决了应该.
解决方案5:你用afn网络请求,啥也不用你管了非常方便
解决方案6:开子线程的话,给网络任务开子线程。主线程又叫UI线程,主线程并不是线程安全的。所以最好主线程只用来处理UI的操作。
解决方案7:你用的是不是同步请求啊?? 不是的话给请求开一个线程
解决方案8:给网络开个子线程试试
解决方案9:开异步线程就好!
解决方案10:因为你没有开线程吧,一个线程里只能执行一个任务