【发布时间】:2013-09-21 19:21:44
【问题描述】:
我有一个我正在为 iOS 6 构建的应用程序,我最近升级到了 iOS 7。我有一个 UIScrollView 和一些自定义 UIViews。在这些UIViews 中,我每个都有一个UIImageView。出于某种原因,当我在 iOS 6 中设置 UIImageView.image 时,它显示得很好,但 iOS 7 不会显示它们。代码如下:
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++;
}
我的应用正在记录:@"It Worked",所以我知道UIImageView.image 不是nil。我可能做错了什么?
编辑:
我尝试了 UIImageRenderingMode:
UIImage *imageForView = [UIImage imageWithData:[imagesArray objectAtIndex:i]];
imageForView = [imageForView imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
imageView.image = imageForView;
还是不行。不过,@Max_Power89 说:
正如它在苹果开发者论坛上所写的那样:imageWithData 错误 报告
这一定是一个错误。我希望他们早日解决问题。
编辑 2:
我还添加了这个:
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]);
}
图像保存在应用程序的目录中,所以我确定图像不是 nil。
【问题讨论】:
-
记录图像视图的大小
-
@Wain - 框架的 NSLog 为
0,0,320,120没有问题 -
我们对此有有效的解决方案吗?我遇到了同样的问题。这也适用于
UITableView:( -
这似乎是自动布局约束的错误。一旦我调整了约束,它似乎工作正常。玩转约束
-
我也有同样的问题,你解决了吗?我发现如果我按下主页按钮并返回所有视图,iOS6 就可以了。我确定这是 AutoLayout 的事情。
标签: ios objective-c xcode uiimageview ios7