线程中的图像加载使导航过渡断断续续

Posted

技术标签:

【中文标题】线程中的图像加载使导航过渡断断续续【英文标题】:Image Loading in Thread Makes Navigation Transition Choppy 【发布时间】:2011-10-27 20:55:19 【问题描述】:

我有一个应用程序,用户单击照片缩略图会触发下一个视图控制器被推送到导航堆栈上,该堆栈负责显示更大版本的图片。当按下照片缩略图按钮时,我将照片 alasset 引用发送到下一个视图控制器,该视图控制器在其 viewDidLoad 方法中加载它,如下所示:

dispatch_async(dispatch_get_main_queue(), 
^
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    UIImageView *tempMyImageView = [[UIImageView alloc] initWithImage: [UIImage imageWithCGImage:[[[self myAsset] defaultRepresentation] fullScreenImage]]];
    [self setMyImageView: tempMyImageView];
    [myViewContainer addSubview: [self myImageView]]; 
    [tempMyImageView release];
    [pool drain];
);

似乎一切正常,除了当我发送一张大图像(比如我从相机拍摄的一张)时,导航过渡不稳定。有谁知道如何解决这个问题?

【问题讨论】:

【参考方案1】:

您可以尝试在转换完成后仅加载图像。

另外值得注意的是,您实际上并没有在新线程中执行此操作,因为您指定了主队列。这并不是一个好主意,因为您不想在另一个线程上执行 UI 代码。

【讨论】:

以上是关于线程中的图像加载使导航过渡断断续续的主要内容,如果未能解决你的问题,请参考以下文章

推送 View Controller 时出现断断续续的过渡

如何在导航控制器中将过渡动画从底部更改为顶部?

如何在 html 导航栏点击之间获得平滑过渡

断断续续的全屏退出过渡

CSS3 过渡:*IN* 和 *OUT* 的不同过渡(或从过渡状态返回)

侧面导航中的角材料滑动过渡?