2009-07-13 10 views
7

Es gibt derzeit eine Menge Antworten darauf, wie man einen benutzerdefinierten festen Hintergrund für ein UITableView einstellt. Aber gibt es einen Trick, um das Hintergrundbild zusammen mit den Tabellenzellen zu scrollen?Scrollen Hintergrundbild für UITableView?

Danke!

Antwort

3

.

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

Danke, habe es versucht, aber ich denke, die sendSubviewToBack Nachricht funktioniert nicht so, wie es in diesem Fall sollte: die UIImageView wird über den Zellen positioniert. Irgendwelche Hinweise? –

+1

Dieser Ansatz war mein erster Versuch. Wenn man es nach hinten schickt, wird es trotzdem über die Zellen gelegt. –

-6

Eine mögliche Antwort war - offensichtlich - schon auf Stackoverflow:

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

Ref: iPhone - Setting background on UITableViewController

Edit: Das ist keine perfekte Antwort, ich weiß :)

+2

Das wird Teile des Hintergrunds in jeder Zelle verwenden. Also, wenn Sie Hintergrundbild höher als eine Zelle haben, wird das nicht funktionieren. – OgreSwamp

+6

Dies ist KEINE richtige Antwort, weil das Hintergrundbild nicht zusammen mit der Tabelle scrollt. – Bobo

+1

Soll das funktionieren? Ich stehe vor dem gleichen Problem, das @OgreSwamp erwähnt, obwohl der Hintergrund mit der Tabellenansicht scrollbar ist, verwendet die Zelle Teile des Hintergrunds in jeder Zelle. Wenn diese Lösung nicht funktioniert, warum wurde diese als richtige Antwort akzeptiert? –

3

Ich würde denken, dass die Antwort darin besteht, die UITableView abzulagern und layoutSubviews zu überschreiben. In der UITableView sollten Sie eine Eigenschaft erstellen, die auf einen Hintergrund UIImageView verweist.

Wenn Sie außer Kraft setzen layoutSubviews schreiben nur

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

} 
+0

Leider reicht dies nicht aus, um alle Fälle zu korrigieren, in denen die Ansichten verschoben werden. – steipete

+0

wie? Es löst tatsächlich das Problem, ich habe es selbst versucht. Über welche Fälle sprechen Sie? – thewormsterror

+0

Manchmal mischt UITableView Ansichten. Es ist nicht deterministisch und unterscheidet sich zwischen iOS-Versionen. Benutze das nicht. Ich habe einen scrollenden UIImageView verwendet, der in scrollViewDidScroll neu positioniert wird. – steipete

6

Sie haben das Hintergrundbild über Backgroundcolor Eigenschaft UITableView zu setzen:

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

Wenn es kein 'UITableViewController' ist, müssen Sie' tableView.backgroundColor = ... verwenden. – Jochen

+0

Dieser ist nett – Eugene

+1

Funktioniert das auch in iOS6? Ich probiere das in meiner ViewDidLoad aber nichts passiert es zeigt immer noch den Standard grouptableview bg. – JonEasy

Verwandte Themen