2009-07-13 13 views

risposta

3

.

UIImageView *background = [[UIImageView alloc]initWithImage: [UIImage imageNamed: @"background.jpg"]]; 
    [tableView addSubview: background]; 
    [tableView sendSubviewToBack: background]; 
+1

Grazie, l'ho provato, ma penso che il messaggio sendSubviewToBack non funzioni come dovrebbe in questo caso: UIImageView viene posizionato sopra le celle. Qualche indizio? –

+1

Questo approccio è stato il mio primo tentativo. L'invio alla parte posteriore lo mette comunque sopra le celle. –

-6

Una possibile risposta è stata - ovviamente - già su StackOverflow:

self.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"desk.png"]]; 

Rif: iPhone - Setting background on UITableViewController

Edit: Questa non è una risposta perfetta, lo so :)

+2

Questo utilizzerà parti dello sfondo in ogni cella. Quindi se hai un'immagine di sfondo più alta di una cella che non funzionerà. – OgreSwamp

+6

Questa NON è una risposta corretta perché l'immagine di sfondo non scorrerà insieme alla tabella. – Bobo

+1

Dovrebbe funzionare? Sto affrontando lo stesso problema menzionato da @OgreSwamp, sebbene lo sfondo sia scorrevole con la vista tabella, la cella utilizza parti dello sfondo in ogni cella. Se questa soluzione non funziona, perché è stata accettata come risposta corretta? –

3

Penserei che la risposta è di sottoclasse l'UITableView e sovrascrivere layoutSubviews. In UITableView dovresti creare una proprietà che punti a uno sfondo UIImageView.

Quando si ignora layoutSubviews solo scrivere

-(void) layoutSubviews { 
    [self sendSubviewToBack: backgroundImageView]; 
    [super layoutSubviews]; 

} 
+0

Purtroppo, questo non è sufficiente per correggere tutti i casi d'angolo in cui le visualizzazioni vengono mischiate. – steipete

+0

in che modo? in realtà risolve il problema, l'ho provato io stesso. Di quali casi angusti stai parlando? – thewormsterror

+0

Talvolta, UITableView mescola le visualizzazioni. Non è deterministico e diverso tra le versioni iOS. Non usare questo. Ho usato un UIImageView a scorrimento che è stato riposizionato in scrollViewDidScroll – steipete

6

È necessario impostare l'immagine di sfondo tramite backgroundColor proprietà di UITableView:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]; 
+1

Se non è un 'UITableViewController' devi usare' tableView.backgroundColor = ... ' – Jochen

+0

Questo è bello – Eugene

+1

Funziona anche su iOS6? Ho provato questo nel mio viewDidLoad, ma non succede nulla che mostra ancora il grouptableview bg standard. – JonEasy

Problemi correlati