2008-10-22 6 views
47

In mancanza di un UIWebView come livello più indietro nel mio file di pennino, come posso aggiungere un'immagine di sfondo ripetuta a un'app per iPhone (come l'aspetto di velluto a coste sullo sfondo di un UITableView raggruppato)?Ripetizione dell'immagine di sfondo nell'app nativa per iPhone

mi serve per creare un'immagine che è la dimensione dello schermo di iPhone e ripeterlo manualmente utilizzando la copia e incolla?

risposta

160

Apparentemente un UIColor non è necessariamente un solo colore, ma può essere un modello pure. Confusamente, questo non è supportato in Interface Builder.

Invece è impostare il backgroundColor della vista (ad esempio, in -viewDidLoad) con il metodo comodo + colorWithPatternImage: e passarlo un'interfaccia utente Immagine. Per esempio:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"gingham.png"]]; 
} 

Naturalmente, non dimenticate di aggiungere il file immagine al bundle dell'applicazione.

Ci sono anche alcuni pattern di sfondo built-in "colori":

  • groupTableViewBackgroundColor
  • viewFlipsideBackgroundColor

Perché la sono utilizzati a livello globale in tutte le applicazioni per iPhone, si incorre il doppio taglio spada di un aggiornamento del sistema operativo che aggiorna l'aspetto della tua applicazione (dandogli un nuovo look che potrebbe funzionare o meno).

Per esempio:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; 
} 
+1

Wow non sapevo di questo. Ottimo consiglio! – Lounges

+0

Ti preghiamo di fornire uno snippet di codice su come usare groupTableViewBackgroundColor? Grazie! –

+0

Buono a dire che colorWithPatternImage non sembra supportare PNG24 –

2

Si dovrebbe avere uno sguardo al codice di esempio QuartzDemo iPhone di Apple, in particolare QuartzImageDrawing.m. Dovrebbe usare la seguente chiamata di metodo.

CGContextDrawTiledImage 
1

Si dovrebbe usare colorWithPatternImage