iOS--关于使用NSTimer实现滚动条

T_Four 发布于 2016/01/05 14:50
阅读 2K+
收藏 1
iOS

    _timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];

   [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];

如上:我使用了NSTimer实现滚动条自动滚动的效果,并将滚动条加入一个viewController页面中,在这个VC中还有其他的操作,如网络请求,跳转什么的,我发现每次我进行网络请求时,滚动条就是卡顿住,直到网络请求完成时,才恢复正常。。。

求大神帮忙解决,给个解决建议。。。(个人分析与网络请求有关系)


加载中
0
Lembo
Lembo
因为你没有开线程吧,一个线程里只能执行一个任务
NemoCH
NemoCH
回复 @T_Four : 当然是网络了 UI的操作要在主线程中进行的
Lembo
Lembo
回复 @T_Four : 给NSTimer开个子线程试试
T_Four
T_Four
给网络开线程?还是NSTimer?
0
明似水
明似水

开异步线程就好!


0
昨日海棠依旧
给网络开个子线程试试
0
小石头iOS
小石头iOS
你用的是不是同步请求啊?? 不是的话给请求开一个线程
0
锐锐要喝水
锐锐要喝水

开子线程的话,给网络任务开子线程。主线程又叫UI线程,主线程并不是线程安全的。所以最好主线程只用来处理UI的操作。

0
史健_ios

你用afn网络请求,啥也不用你管了非常方便

0
将来的你
将来的你
耗时任务不要在主线程中进行最好吧.开个子线程就解决了应该.
0
王石头
王石头

问题应该出在网络请求上,检查一下是不是使用的同步请求,同步请求会是UI卡顿

0
AllanHyh
AllanHyh
runloopMode 类型改一下试试
0
v
voisen

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

返回顶部
顶部