【问题标题】:NSTimer freezes when calling with UIViewAnimation使用 UIViewAnimation 调用时 NSTimer 冻结
【发布时间】:2013-02-22 04:06:54
【问题描述】:

在我的项目中,我在一秒钟内调用 NSTimer 1000 次。有了它,我在某些图像视图中每次点击分配 5 个UIImage 对象,同时使用UIViewanimation。当我做这项工作时,NSTimer 会冻结几秒钟或延迟。我知道为什么会发生这种情况,因为我在一秒钟内制作了超过 100-120 个 UIImageView 对象。当我不调用 UIAnimation 时,计时器很好。我使用[performSelectorInBackground:withObject:] 在后台执行UIViewAnimation。但其中 UIAnimation 不起作用。

NSTimerUIViewAnimation 都在 UI 上工作。所以他们在主线程上工作。我不能为他们制作不同的线程。我该怎么做才能停止冻结NSTimer 并同时调用UIViewAnimation。这是因为计算量很大。我不能为此制作单独的线程,我该怎么做。

谢谢

【问题讨论】:

    标签: iphone ios6 nstimer uiviewanimation


    【解决方案1】:

    这可能是因为您在 UIImageView 中用于动画的 PNG 图像。

    为什么不尝试使用 JPEG 表示

    UIImage *newImage=[UIImage imageWithData:UIImageJPEGRepresentation(myImage, 0.5)];
    

    然后使用 newImage,因为它的大小比 png 小。

    【讨论】:

    • dispatch_async(dispatch_get_main_queue(), ^{ //UIViewAnimation 代码 });
    • 同样的结果哥们还有什么建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2015-08-30
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多