开发者社区> 问答> 正文

iOS--关于使用NSTimer实现滚动条? 400 报错

iOS--关于使用NSTimer实现滚动条? 400 报错

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

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

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

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


展开
收起
爱吃鱼的程序员 2020-05-29 20:02:06 344 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    开异步线程就好!


    ######给网络开个子线程试试######你用的是不是同步请求啊?? 不是的话给请求开一个线程######

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

    ######

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

    ######耗时任务不要在主线程中进行最好吧.开个子线程就解决了应该.######

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

    ######runloopMode 类型改一下试试######

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

    2020-05-29 20:02:07
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载