线程中的图像加载使导航过渡变得紊乱

时间:2011-10-27 20:55:19

标签: iphone objective-c ios cocoa-touch uiimage

我有一个应用程序,用户点击照片缩略图,触发下一个视图控制器被推送到导航堆栈,导航堆栈负责显示更大版本的图片。当按下照片缩略图按钮时,我将照片的alasset引用发送到下一个viewcontroller,它在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 个答案:

答案 0 :(得分:0)

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

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