gpt4 book ai didi

iphone - UINavigation 过渡卡顿

转载 作者:行者123 更新时间:2023-11-29 04:12:54 25 4
gpt4 key购买 nike

我有一个UIImagePickerController,它允许用户拍照,然后我将其存储在UIImageView中,如下所示:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self dismissModalViewControllerAnimated:YES];
self.photoImageView.image = nil;
[self.activityIndicatorView startAnimating];

dispatch_async(dispatch_get_global_queue(0, 0), ^
{
UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] retain];
dispatch_async(dispatch_get_main_queue(), ^
{
self.photoImageView.image = image;
[self.activityIndicatorView stopAnimating];
self.rightButton.enabled = YES;
[image release];
});

});
}

当我将此图像作为参数传递给推送到导航堆栈上的下一个 UIViewController 时,UINavigation 转换会断断续续,并且非常不稳定/丑陋。我已经做了一个配置文件,但我的代码中没有任何内容真正突出。

我知道用相机拍摄的照片可能很大,但如果我只是传递对它的引用,为什么会对任何东西产生影响?我的照片库中有我拍摄的照片,当我从那里选择它们并将它们传递到下一个过渡时,一切都很顺利。

有人知道这可能是什么原因造成的吗?

最佳答案

可能是因为调整大小过程发生在新的 UIViewController 被推送到导航堆栈时。

假设 iPhone 4 相机拍摄的照片分辨率为 2592 x 1936 (http://stackoverflow.com/questions/3270202/what-is-resolution-of-photo-taken-by-iphone-4-camera )。您的 UIImageView 的尺寸为 400 x 300px,那么调整大小过程将在 viewWillAppear 中进行,这可能会使您的过渡卡顿。

解决此问题的几种方法:

  1. 在viewDidAppear中显示图像,只需保留对图像的引用并将其设置为viewDidAppear中的imageView.image即可。

  2. 在显示图片之前先调整图片大小,假设调整为 640 x 960。

关于iphone - UINavigation 过渡卡顿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com