我有一个我为iOS 6构建的应用程序,我最近升级到了iOS 7.我有一个UIScrollView
,其中包含一些自定义UIViews
。在这些UIViews
中,我在每个UIImageView
中都有一个UIImageView.image
。出于某种原因,当我在iOS 6中设置int i = 0;
for (UIImageView *imageView in myImageViewsOutletCollection)
{
imageView.image = nil;
if (imagesArray.count > i)
imageView.image = [UIImage imageWithData:[imagesArray objectAtIndex:i]];
if (imageView.image == nil)
NSLog(@"signature image with index: %i is nil", i);
else
NSLog(@"It Worked")
i++;
}
时,它显示正常,但iOS 7不会显示它们。这是代码:
@"It Worked"
我的应用正在记录:UIImageView.image
,因此我知道nil
不是UIImage *imageForView = [UIImage imageWithData:[imagesArray objectAtIndex:i]];
imageForView = [imageForView imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
imageView.image = imageForView;
。我能做错什么?
编辑:
我尝试了UIImageRenderingMode:
NSData *pngData = UIImagePNGRepresentation(imageView.image);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *docs = [paths objectAtIndex:0];
NSError *writeError = nil;
[pngData writeToFile:[docs stringByAppendingFormat:@"/image.png"] options:NSDataWritingAtomic error:&writeError];
if(writeError!=nil)
{
NSLog(@"%@: Error saving image: %@", [self class], [writeError localizedDescription]);
}
仍然无法正常工作。但是,@ Max_Power89说:
因为它是在苹果开发者论坛上写的:imageWithData bug 报告
这一定是个bug。我希望他们尽早解决问题。
编辑2:
我还补充说:
{{1}}
图像保存在应用程序的目录中,所以我确定图像不是零。
答案 0 :(得分:1)
iOS 7中的自动布局约束是一个问题/错误。如果删除UIView
上的约束,则没有问题。如果需要,可以通过编程方式设置框架。
答案 1 :(得分:0)
在iOS 7中,默认情况下加载图像只会加载它的alpha Chanel,并使用细节色调着色。您的图像正在显示,只是它与背景颜色相同。
- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode
将其设置为:
UIImageRenderingModeAlwaysOriginal
答案 2 :(得分:0)
因为它写在苹果开发者论坛上:imageWithData bug report
这一定是个bug。我希望他们尽早解决问题。
答案 3 :(得分:0)
也许这对任何人都有帮助:我遇到了同样的问题 - 至少它看起来像这样。最后我发现, UIScrollView 隐藏了一些背景视图层。 UIScrollView背景在.xib文件中设置为“组表视图背景颜色”。如果我将其更改为“clear color”,则行为将恢复正常(如iOS 6中所示)。似乎,该元素的“默认行为”已从iOS6更改为7.也许有人能够确认这一点。