iOS 8.2 升级不在 UIImageView 中显示图像,但仅在通过 iTunes 或 TestFlight 而不是 Xcode 加载的应用程序中

Posted

技术标签:

【中文标题】iOS 8.2 升级不在 UIImageView 中显示图像,但仅在通过 iTunes 或 TestFlight 而不是 Xcode 加载的应用程序中【英文标题】:iOS 8.2 upgrade not show image in UIImageView, but only in app loaded through iTunes or TestFlight not Xcode 【发布时间】:2015-03-26 16:06:19 【问题描述】:

听起来很奇怪……

通过测试飞行或 iTunes 加载的应用程序不会在屏幕上显示图像,但通过 Xcode 加载时会显示。我相信 UIImageView 在那里,并且 UIImage 已加载。

通过 Xcode 加载的 App 工作。

如果设备连接到 Xcode 和调试,设备连接 USB 电缆。尽管加载方法,应用程序仍然有效...

核心数据似乎适用于所有情况。

任何想法,有人见过类似的东西。我很迷茫。

另外,如果您对如何在设备上进行调试有任何提示,我将不胜感激。

我认为它涉及的少数代码。

我正在使用从磁盘加载 UIImage

UIImage * previewImage = [UIImage imageWithContentsOfFile:path];

图像位于 Documents Directory 文件名是输入

NSURL *documentsFolderURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSString *documentsFolderPath = [documentsFolderURL path];

if (![_documentsDirectory isEqualToString:documentsFolderPath]) [self generateLocaFolderPath];

NSString *returnedPath = [_documentsDirectory stringByAppendingPathComponent:fileName];

return returnedPath;

并使用

在imageView中设置图像
previewView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0,  frameImageThumbnail.size.width, frameImageThumbnail.size.height)];
[previewView setImage:previewImage];

其他一切似乎都运行良好...

我的第一个问题!!!感谢阅读!

_编辑_

我现在坚信问题不在 UIImage 中,我在应用程序的其他部分使用了相同的方法并且它工作正常。

但现在我认为问题出在我对包含 UIImageView 的 UIView 执行的动画中。

[_view setFrame:frameImageThumbnail];
[_view setClipsToBounds:YES];
[_view setAutoresizesSubviews:YES];
[_image setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[_view addSubview:_image];

[UIView animateWithDuration:0.4
                      delay:0.1
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^(void)
                     CGRect destination1Frame = _view.frame;

                     //... some complicated calculations with the rect ... 

                     [_view setFrame:destination1Frame];

                     [UIView transitionFromView:_customView toView:_view duration:0 options: UIViewAnimationOptionShowHideTransitionViews completion:^(BOOL finisehdCompletion)
                          //stop showing video in _customView    
   ]; 
];

我在情节提要中使用 NSAutolayout。虽然我的应用程序只允许一种横向。不知道这一切是否与它正在制作的框架啮合。 让可怜的自动布局人头晕......

【问题讨论】:

【参考方案1】:

确保您在复制捆绑资源中设置了/您的图像。您也可以检查您的图像 path 是否有效。但我认为图像未设置为在构建阶段复制。

【讨论】:

图片位于 Documents 目录中。要显示的图片是用户拍摄的图片。用户对其执行多项任务。然后我使用那张图片,所有图像处理都正确完成。我不能在构建阶段做到这一点。谢谢你的回答。 请检查本地路径的方法。还有 NSLog 所有路径和文件名(包括目录)。我认为通过 testflight 部署的应用程序和通过 XCode 在设备上运行的应用程序之间肯定存在差异。发布这些日志。 似乎问题与自动布局有关。我不明白为什么只发生在通过 iTunes 或 testflight 加载的应用程序上。 UIImageView 上的帧大小设置为 (0,0,0,0)。只能在设备中通过存档--> 导出--> iTunes 工作非常令人沮丧...【参考方案2】:

我遇到了同样的问题。。没有找到正确的解决方案。

但我删除了图像(检查它是否在您的 Bundle 资源中被删除),然后用 ANOTHER 名称再次放置图像。 它对我有用。这是一个临时解决方案,如果它是苹果错误或什么的。

【讨论】:

【参考方案3】:

好的,在我的设备中构建并安装了 20 多个 ipa 文件之后。在所有这些解决问题的过程中,我从情节提要中删除了 _view,并以编程方式初始化了视图。我记得 _view 最初被设置为 (weak, nonatomic) 属性,因为是用故事板制作的,这个超级好用的 ctrl+。

那是我所做的改变,从弱到强,现在可以工作了。

我不知道为什么只有通过 iTunes 使用 ipa 文件或通过试飞应用程序安装程序时它才起作用。这对我来说仍然是个谜。

【讨论】:

以上是关于iOS 8.2 升级不在 UIImageView 中显示图像,但仅在通过 iTunes 或 TestFlight 而不是 Xcode 加载的应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

为什么图像不在UIImageView中显示?

appDelegate 中的 UIImageView 显示在模拟器中,但不在设备上

iOS SDK 4.1 UIImageView 的区别?

UIPageControl 不与 IOS7 中的 UIImageView 一起使用

IOS7:Pop ViewController 强制 UIImageView 掉落

在 google colab 中将 CUDNN 升级到 8.2