2010-08-03 10 views
6

Sto cercando di allungare un'immagine in un'UIImageView - ma fallire miseramente :)UIImageView con stretchableImageWithLeftCapWidth non si allunga immagine

seguente configurazione:

NIB-File con una vista e un annesso UIImageView a questa vista.

Collegato alla classe utilizzando IBOutlet UIImageView *background.

Ora, nella mia classe ho provare quanto segue:

UIImage *bgImage = [[UIImage imageNamed:@"myImage.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:50]; 
[background setImage: bgImage]; 

bgFrame = CGRectMake(0, 0, 250, 200); 
background.frame = bgFrame; 

che dovrebbe allungare l'immagine in senso verticale - almeno, questo è quello che ho pensato. Ahimè, non funziona ... :(

L'immagine che sto usando ha un'altezza di 115px (che dovrebbe essere sufficiente per il tratto, immagino?)

risposta

16

Got it ... (interessante il fatto che questo accade spesso pochi secondi dopo aver chiesto la questione)

in IB, ho dovuto impostare la modalità in UIImageView a «Scala di riempire» e impostare la Ridimensiona automaticamente-proprietà

questo è ciò che ha risolto il problema ...

Speranza che aiuti qualcuno;)

+1

Sì, questo mi ha aiutato. Grazie per aver pubblicato la tua soluzione. Questo deve accadere nelle nuove versioni di iOS perché non ho mai riscontrato problemi nelle versioni precedenti. Contrassegnalo anche come risposta :) – Luke

1

A volte dipende dal file, però ho fatto due cose per risolvere il problema e non so che era la soluzione:

  • Aprire e salvare nuovamente il file (non credo che questo ha reso la differenza)
  • Creare il file file.png e [email protected] (In ogni caso ciò dovrebbe sempre essere fatto con immagini estensibili)

Dopo aver aggiunto il file @ 2x l'immagine si allungava bene.

+0

Concordo, i dispositivi Retina (e il simulatore quando impostato su dispositivi Retina) non si allungano quando ricadono su una bitmap non retina. – Clafou