【问题标题】:Complete UISlider rendering before calling CPU intensive task在调用 CPU 密集型任务之前完成 UISlider 渲染
【发布时间】:2013-09-17 05:03:48
【问题描述】:

我有一个在 TouchUpInside 和 TouchUpOutside 上的滑块,调用方法 blurPhoto

- (IBAction)blurPhoto:(id)sender {

    //perform CPU intense blur

     //fade blured image back in
     [UIView transitionWithView: mImageView
                  duration:0.9f
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    mImageView.image = completedBlur;
                } completion:NULL];
}

但是,直到模糊完成(大约需要 1-2 秒)之后,滑块才会完成最终渲染,这会导致滑块跳动和粘滞,用户体验不佳。在调用此函数之前,如何确保滑块已在其最终位置完成渲染?

编辑:我也尝试过使用 ValueChanged(连续:否),它仍然具有相同的效果。

【问题讨论】:

    标签: ios objective-c cocoa-touch uislider


    【解决方案1】:

    您可以使用在单独线程中执行的函数来调用动画。线程选项是 NSThread 和 GDC。目前,UI 被阻塞,因为主线程正忙于执行请求的动画(函数),因此一旦函数完全执行,UI 就会更新。

    【讨论】:

    猜你喜欢
    • 2015-03-15
    • 2020-10-31
    • 2018-04-21
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    相关资源
    最近更新 更多