Lavorando con Interface Builder può venire spontaneo usare un oggetto UIImageView per impostare lo sfondo del nostro view controller. In alternativa è possibile eliminare questo oggetto, risparmiando così un po’ di memoria, e sfruttare la view associata al view controller. Basta inserire nel nostro view controller:
1 2 3 4 | - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImage.jpg"]]; } |
Va bene anche viewDidLoad, ma viewWillAppear: può evitare qualche sfarfallio di troppo.
Peccato non sia possibile accedere ai pattern anche da Interface Builder, almeno non nella versione Xcode 3.2.5.








6
Nota: La tecnica del pattern ha l’unico svantaggio che l’immagine viene ripetuta orizzontalmente e verticalmente. Questo, nel caso di uno sfondo, dove la view copre l’intera area del video, non è un impedimento.
Negli altri casi la view deve avere le stesse dimensioni dell’immagine usata come pattern.
@Giovambattista Fazioli:
Salve, volevo chiederle, se possibile, quale metodo si potrebbe usare per evitare la ripetizione dell’immagine orizzontalmente e verticalmente. Io uso una view disegnata sulle esatte dimensioni dell’immagine, ma quando devo poi ridimensionarla nascono i problemi.
Grazie mille anticipatamente.
Saluti.
@Silvio: che io sappia non è possibile impedire il repeat con il metodo
colorWithPatternImage. Nel caso specifico, quando le dimensioni del view cambiano, l’uso di unaUIImageViewdiventa una scelta obbligata, e anche la più semplice da implementare e gestire.@Giovambattista Fazioli:
Grazie mille, lei è stato prezioso!