I have an app I was building for iOS 6 that I recently upgraded to iOS 7. I have a UIScrollView
with a few Custom UIViews
. Within those UIViews
, I have a single UIImageView
in each. For some reason, when I set the UIImageView.image
in iOS 6, it shows up fine, but iOS 7 will not show them. Here's the code:
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++;
}
My app is logging: @"It Worked"
, so I know the UIImageView.image
isn't nil
. What could I be doing wrong?
EDIT:
I tried the UIImageRenderingMode:
UIImage *imageForView = [UIImage imageWithData:[imagesArray objectAtIndex:i]];
imageForView = [imageForView imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
imageView.image = imageForView;
Still didn't work. However, @Max_Power89 said:
as it is written on the apple developer forum : imageWithData bug report
this must be a bug. i hope they fix the problem early.
EDIT 2:
I also added this:
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]);
}
The image was saved in app's directory, so I know for certain that the image isn't nil.
First you create a UIImage from your image file, then create a UIImageView from that: let imageName = "yourImage. png" let image = UIImage(named: imageName) let imageView = UIImageView(image: image!)
UIImage contains the data for an image. UIImageView is a custom view meant to display the UIImage .
It's a problem/bug with Auto Layout constraints in iOS 7. If you remove the constraints on the UIView
, it works no problem. You can set frames programmatically if you need to.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With