2012-02-16 3 views
8

Jak dodać obraz do UIView? Oto, co starałem dotąd:Dodaj zdjęcie aby zobaczyć

UIView *imageHolder = [[UIView alloc] initWithFrame:CGRectMake(40, 200, 280, 192)]; 
UIImage *image = [UIImage imageNamed:@"bloodymoon.jpg"]; 
[imageHolder addSubview:image]; // Error: Incompatible pointer types 
[self.mainView addSubview:imageHolder]; 
+0

wybrać odpowiedź – tjpaul

Odpowiedz

20

spróbować UIImageView:

UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 200, 280, 192)]; 
UIImage *image = [UIImage imageNamed:@"bloodymoon.jpg"]; 
imageHolder.image = image; 
// optional: 
// [imageHolder sizeToFit]; 
[self.mainView addSubview:imageHolder]; 
+0

nikt nie wydaje się podoba użyciem 'initWithImage:' (co jest faktycznie wyznaczony inicjator). –

+0

On nie chce tego robić. Więc pomyślałem, że użyłbym jego ulubionej initWithFrame: ... –

4

Metoda 1:

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Image.jpg"]]; 
imgView.frame = CGRectOffset(imgView.frame, 100, 100); 
[self.view addSubview:imgView]; 

Metoda 2:

Można użyć następującego sposobu Pliki xib

Krok 1: Możesz przeciągnąć i upuścić UIImageView, aby pokazać bibliotekę obiektów (w prawym dolnym rogu na Xib) i umieścić na widoku.

Krok 2: Skopiuj obraz do Xcode projektu

Krok 3: Wybierz obraz z obrazem rozwijanej listy, która jest obecna w prawym górnym rogu.

+0

Tutaj źle rozumiesz, OhDoh chce wyświetlać obraz jako programowo. –

1

Fyi

UIImage nie jest podklasą UIView. UIImage to w zasadzie dane obrazu.

Głównym sposobem dodania obrazu do widoku jest utworzenie obrazu z obrazu.

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bloodymoon.jpg"]]; 
//imageView has a frame {0,0,imagewidth,imageheight} 
//so just move it 
imageView.frame = CGRectOffset(imageView.frame, 40, 200); 
[self.mainView addSubview:imageView]; 

W ten sposób można manipulować mniejszymi liczbami "stałych".

2

spróbować zamiast:

//set UiView background color to orange to find out the location on screen 
UIView * view111 = [[UIView alloc ] initWithFrame:CGRectMake(50,50, 50, 50)]; 
view111.backgroundColor = [UIColor orangeColor]; 
[self.view addSubview:view111]; 

UIImageView *imageImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"water1.png"]];` 
// can set position to 0,0 (origin) instead of 10,10,   
imageImg.frame = CGRectMake(10,10,30,30); 
[view111 addSubview:imageImg];`