2011-01-12 5 views
4

J'essaie de faire un UIImageView avec un chargement .png à l'emplacement d'un bouton quand on clique dessus.Objectif C: créer un UIImageView par programme

brickAnim = UIImageView.alloc;   ///////freezes during runtime 
[brickAnim initWithFrame:currentBrick.frame]; 
[brickAnim setImage:[NSString stringWithFormat:@"brick-1.png"]]; 
[self.view addSubview:brickAnim]; 

current brick est le nom du bouton qui clique dessus. Je l'ai réduit et je me suis rendu compte que la première ligne provoque le blocage de l'application et sa sortie. Je ne peux pas comprendre ce que je fais mal.

Répondre

13

essayer

brickAnim = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"brick-1.png"]]; 
brickAnim.frame = currentBrick.frame; 
[self.view addSubview:brickAnim]; 

modifier après avoir vu réponse à autre réponse:

declares vous et l'initialisation brickAnim ailleurs? sinon, vous devez ajouter au début:

UIImageView *brickAnim = [[UIImageView alloc] ....; 

et à la fin:

[brickAnim release]; 
8

Vous devez d'abord créer un UIImage, car setImage veut un objet UIImage. Quelque chose comme cela peut fonctionner (noter que ceci est une méthode de classe):

[brickAnim setImage:[UIImage imageNamed:@"brick-1.png"]]; 

Regardez la référence UIImage, je ne suis pas sûr que cela fonctionne (depuis imageNamed peut vouloir un chemin format différent).