2011-09-19 22 views
5

Quindi, sto facendo un breakout-clone su iPhone. Tutti gli elementi tranne i mattoni da colpire, vengono creati e funzionano come previsto con il file NIB.iOS: aggiungi più UIImageViews a livello di codice in runtime

Tuttavia, se voglio creare diversi livelli ed eseguire il rilevamento delle collisioni sui mattoni, sembra stupido aggiungerli in Interface Builder. Come li aggiungo alla vista nel codice?

Ho ottenuto un'immagine chiamata "brick.png" che voglio usare con UIImageView. Inoltre, voglio avere array e/o liste con questi in modo da poter creare fantastici livelli con pattern nei mattoncini e tutti :)

Come faccio a farlo nel codice?

risposta

8

@Mark ha ragione, vorrei solo aggiungere dove è necessario visualizzare l'immagine!

UIImageView *imgView = [[[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 20)] autorelease]; 
NSString *imgFilepath = [[NSBundle mainBundle] pathForResource:@"brick" ofType:@"png"]; 
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgFilepath]; 
[imgView setImage:img]; 
[img release]; 
[self.view addSubview:imgView]; 

ho provato il codice e per me mostra solo quando detto le coordinate

+0

Grazie! Ha funzionato come un fascino :) – Emil

1

È davvero piuttosto facile. Ecco un esempio di come si dovrebbe creare e visualizzare un UIImageView programatically ...

UIImageView *imgView = [[[UIImageView alloc] init] autorelease]; 
NSString *imgFilepath = [[NSBundle mainBundle] pathForResource:@"brick" ofType:@"png"]; 
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgFilePath]; 
[imgView setImage:img]; 
[img release]; 
[self.view addSubview:imgView]; 

che è praticamente tutto quello che c'è ad esso.

+1

Probabilmente si desidera 'autorelease' la visualizzazione dell'immagine troppo :) – darvids0n

+0

Vero. Ho modificato la mia risposta per includere l'autorelease. –

Problemi correlati