6

我有一个我正在为 iOS 6 构建的应用程序,我最近升级到了 iOS 7。我有一个UIScrollView带有一些 Custom的应用程序UIViews。在这些中UIViews,我UIImageView在每个中都有一个。出于某种原因,当我UIImageView.image在 iOS 6 中设置时,它显示得很好,但 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]);
}

该图像保存在应用程序的目录中,因此我确定该图像不是零。

4

4 回答 4

1

这是 iOS 7 中自动布局约束的问题/错误。如果您删除 上的约束UIView,它就没有问题。如果需要,您可以通过编程方式设置框架。

于 2013-09-30T14:38:52.883 回答
0

在 iOS 7 中,加载图像默认只加载它的 alpha Chanel,并使用细节 tint color 对其进行着色。您的图像正在显示,只是它与背景颜色相同。

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode

将其设置为:

UIImageRenderingModeAlwaysOriginal
于 2013-09-21T19:27:15.297 回答
0

正如苹果开发者论坛上所写的那样:imageWithData 错误报告

这一定是一个错误。我希望他们早日解决问题。

于 2013-09-21T19:34:21.393 回答
0

也许这对任何人都有帮助:我遇到了同样的问题——至少看起来像这样。最后我发现UIScrollView隐藏了一些背景视图层。UIScrollView-background在 .xib-File中设置为“ Group Table View Background Color ”。如果我将其更改为“清除颜色”,则行为会恢复正常(就像在 iOS 6 中一样)。似乎,该元素的“默认行为”从 iOS6 更改为 7。也许有人能够确认这一点。

于 2013-11-05T16:08:42.723 回答