2012-01-04 19 views
6

Ho un file XIB con gli elementi UIControl e UIScrollView al suo interno. Vorrei aggiungere un'immagine di sfondo alla vista. Ho provato ad aggiungere un ImageView in IB ma non sono riuscito a far sì che fosse presente come sfondo e oscurava gli elementi di controllo. Anche l'invio di un messaggio sendViewBack non sembra fare nulla.Impostazione immagine di sfondo a livello di codice in Xib

Quando creo UIImageView a livello di codice, non viene visualizzato.

Di seguito è il codice che ho provato:

Creazione Programmatico

UIImage *imageBackground = [UIImage imageWithContentsOfFile:@"globalbackground"]; 

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:imageBackground]; 

[[self view] addSubview:backgroundView]; 

[[self view] sendSubviewToBack:backgroundView]; 

Trattare con il file NIB

[[self view] sendSubviewToBack:background]; 

cui sfondo è un IBOutlet dichiarato nel file di intestazione e collegato al La visualizzazione dell'immagine di NIB in IB.

C'è un passaggio che mi manca qui?

risposta

8

Impostare il frame e non utilizzare sendSubviewToBack:. Se si lavora con UIImageViews è necessario utilizzare [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageBackground"]]; 
backgroundView.frame = self.view.bounds; 
[[self view] addSubview:backgroundView]; 

speranza che questo era l'accordo.

+1

se ci sono altri componenti dell'interfaccia utente, assicurarsi di utilizzare insertSubView come di seguito: [self.view insertSubview: backgroundView atIndex: 0]; – TharakaNirmana

5
  • Non aggiungere la vista dell'immagine come una visualizzazione secondaria di vista di scorrimento, ha bisogno di essere una vista separata al livello più alto della gerarchia, quindi inviato al retro del Z-ordine.
  • Sarà necessario impostare lo sfondo della vista di scorrimento su [UIColor clearColor] e assicurarsi che la vista di scorrimento non sia contrassegnata come opaca. Puoi farlo nel codice o nel generatore di interfacce.
  • Non utilizzare imageWithContentsOfFile e quindi basta passargli un nome file senza estensione (sto assumendo .png) - questo probabilmente sta restituendo nil. Utilizzare imageNamed: invece (non si fornisce un'estensione in tal caso, iOS4 e superiori)

A seconda della natura della vostra immagine, è anche possibile generare un colore con essa e utilizzare che come colore di sfondo della tua vista di scorrimento. Sto assumendo self.view è la vista di scorrimento:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"globalBackground"]]; 
Problemi correlati