Why won't my UIImageView appear as a subview? - iphone

UIImage *image = [[UIImage alloc] initWithContentsOfFile:#"popup.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imageView];
[image release];
[imageView release];
The code sits within a UIViewcontroller object. It compiles fine but, when run, the subview does not appear to be added.
I'm tired.

initWithContentsOfFile requires the complete file path, not just the file name.
Replace the line where you initialize UIImage with the following:
NSBundle *bundle = [NSBundle mainBundle];
UIImage *image = [[UIImage alloc] initWithContentsOfFile: [bundle pathForResource:#"popup" ofType:#"png"]];
A simpler way will be to use the imageNamed: method of the UIImage class
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:#"popup.png"]];
And you dont have to worry about the path-to-file details. Just that the initWithImage: method caches the image. Depending upon your application might be good or bad idea.
Hope this helps!

Try to use:
UIImage *image = [UIImage imageNamed:#"popup.png"];
and, off course, get rid of the [image release]; because in this solution the image is autoreleased.
Notice that this solution won't be good if you have more than one image with this name (in different folders/groups)...

your imageView needs a frame.
imageView.frame = CGRectMake(0,0,320,480);

I know this question is old now, but some users can still benefit from an answer.
Like others have said, try using [UIImage imagedNamed:] instead of initWithContentsOfFile.
And the reason it is not showing up on screen is you did not set a location for the image. You can fix this by either setting a frame for the image view or setting its center at a single point. To place the image view in the center of the screen:
UIImage *image = [UIImage imageNamed:#"image.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.center = [self.view center];
// or if you want to set a frame instead
// CGRect imageFrame = CGRectMake(x,y,width,height);
// [imageView setFrame:imageFrame];
[self.view addSubView:imageView];
Enjoy :)

Related

animated gif on uibutton

I use this code, that work, really size of image 160x148 but image button is view very big on all screen!
UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
animatedImageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:#"button1.png"],
[UIImage imageNamed:#"button2.png"],
[UIImage imageNamed:#"button3.png"],
[UIImage imageNamed:#"button4.png"], nil];
animatedImageView.animationDuration = 1.0f;
animatedImageView.animationRepeatCount = 0;
[animatedImageView startAnimating];
[yourButton addSubview: animatedImageView];
How fix that?
The images are big because you called initWithFrame: and passed in your view's bounds. Change it to a different-sized rect, such as:
CGRectMake(0, 0, 160, 148)
... and then reposition it as you see fit.
Try this code.It will help you for correct solution.
UIImage *myimage=UIImage imageNamed:#"button1.png";
Button.imageview.image=myimage;

Unable to access UIImageView image

Currently attempting to access a UIImage property of UIImageView to instantiate another UIImage object. Simply I'm trying to do this.
UIImage *myImage = myExistingView.image;
The property will not set however. I keep getting nil values for myImage.
I would like to copy the image, eventually doing something like
UIImageView *newImageView = [[UIImageView alloc] initWithImage:myImage];
but I can't seem to get it down. Suggestions?
Edit. Most recent attempt that has not worked.
UIImageView *newView = [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithData:UIImagePNGRepresentation(myImageView.image)]];
You have to Initialize your UIImage in this way UIImage *myImage = [UIImage imageNamed: #"imgCheckSelected.png"];
After you will pass myImage to newImageView. I`m not sure that you can save a UiImage inside another UIImage.
Do this for accessing images
UIImageView *newImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:#"imageName"]];
It will dispaly image.
I did this and it works..
UIImageView *someNewImageView = [[UIImageView alloc] initWithImage:yourExistingView.image];
someNewImageView.frame = CGRectMake(50, 50, 150, 150);
[self.view addSubview:someNewImageView];
[someNewImageView release];
Notice that yourExistingView is an UIImageView propertie added in Interface builder.
Have you checked the frame of your new UIImageView??
did you set the image in yourExistingView??
did you add the new imageview to view??

Adding a UIImage to UIImageView programmatically

In .h file I declare this;
IBOutlet UIImageView *image;
In .m file;
UIImage *image1 = [UIImage imageName:#"http://image.com/image.jpg"];
image = [[UIImageView alloc] initWithImage:image1];
image.frame = CGRectMake(0,0, 50,50);
[self.view addSubView:image];
and I connected the UIImageView from the Interface builder. But I need to do this Only by code (without using the Interface Builder). Can someone help me modify the code so that I could do this only by code?
I THINK you have some problem in displaying a remote image in uiimageview so i thing u should do that fashion.
NSData *receivedData = [[NSData dataWithContentsOfURL:[NSURL URLWithString:#"http://image.com/image.jpg"]] retain];
UIImage *image = [[UIImage alloc] initWithData:receivedData] ;
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(0,0, 50,50);
[self.view addSubView:image];
[image release];
[imageView release];
and i connected the UIImageView from the Interface builder
That was a mistake. If you do that, the image view pointed to by your image instance variable will be the wrong one - the one in the nib. You want it to be the one that you created in code.
So, make no connection from Interface Builder; in fact, delete the image view from Interface Builder so you don't confuse yourself. Make sure your instance variable is also a property:
#property (nonatomic, retain) UIImageView* image;
Synthesize the property:
#synthesize image;
Now your code will work:
UIImage *image1 = [UIImage imageName:#"http://image.com/image.jpg"];
self.image = [[UIImageView alloc] initWithImage:image1];
// no memory management needed if you're using ARC
[self.view addSubview:self.image];
You will need to play with the frame until the location is correct. Note that the frame will automatically be the same size as the image, by default.
you dont need to connect. This code will work without connecting. Leave IBOutlet out.
UIImage *someImage = [UIImage imageName:#"http://image.com/image.jpg"];
UIImageView* imageView = [[UIImageView alloc] initWithImage:someImage];
[self.view addSubView:imageView];

how to display Image in ImageView?

I am new to programming and developing my first application, but I want to know that how can I display image to imageView.
Programmatically :
From http://www.iphoneexamples.com/:
CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:#"myImage.png"]];
myImage.opaque = YES; // explicitly opaque for performance
[self.view addSubview:myImage];
[myImage release];
Where myImage.png is an png format image which you will import to your resources folder.
Using Nib(Xib File):
Open your.xib file.
Go to Tools -> Library.
Drag and drop one UIImageView on your .xib.
Open Attribute Inspector of the ImageView(Press Cmd + 1).
You'll get one Image property. Set the image you want from your Resource folder using the drop-down list.
There you got it. :-)
// First way
myImage.image = [UIImage imageNamed:#"myImage.png"];
// Second way
NSString *fullpath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:#"/myImage.png"];
myImage.image = [UIImage imageWithContentsOfFile:fullpath];
Check out UIImageView class reference here
Read http://www.iphoneexamples.com/
CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:#"myImage.png"]];
myImage.opaque = YES; // explicitly opaque for performance
[self.view addSubview:myImage];
[myImage release];
UIImageView *imageView=[[UIImageView alloc] init];
[imageView setImage:[UIImage imageNamed:#"yourImage.png"]];
(If you have created imageView from IB and have outlet-ed it then ignore First Line)
Try it using:
imgView.image = [UIImage imageNamed:#"test.png"];

Is there a way to add images of type .jpeg , .gif and tiff... etc in iphone sdk?

I got one problem that how can i display the .jpeg and other type of files in iphone sdk. Is there any solution to this. please help me.
Thank you,
Madan Mohan.
Create a UIImage like this:
UIImage *myImage = [UIImage imageNamed:#"image.jpeg"];
Display it in a UIImageView:
UIImageView *myImageView = [[UIImageView alloc] initWithImage:myImage];
And add the UIImageView as subview to your existing view:
[view adsdSubview:myImageView];
you can use the following code to display image from the URL
NSData *imageData=[NSData dataWithContentsOfURL:[NSURL URLWithString:#"yourURL"]];
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 250, 250)];
imgView.image=[UIImage imageWithData:imageData];
[self.view addSubview:imgView];