Je viens de télécharger votre projet de test et voici ce que je pense.
Vous avez créé votre rootviewcontroller de façon étrange. C'est une spécialisation de UITableViewController, mais vous avez ajouté votre propre UITableView en tant que vue enfant, avec votre UIImageView. Il y a un moyen beaucoup plus facile.
Votre RootViewController doit simplement être une classe dérivée de UITableViewController, sans modification de la structure dans Interface Builder. Si vous souhaitez définir votre UIImageView dans UInterface Builder, faites glisser une UIImageView dans la XIB, mais pas en tant qu'enfant de UITableView. Faites-en un objet de premier niveau. Branchez-le à une nouvelle IBOutlet vous ajoutez dans le code à RootViewController:
@interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UIImageView* _backgroundImageView;
}
Assurez-vous de définir l'image dans le UIImageView dans Interface Builder.
Dans votre fichier RootViewController.m, ajoutez ce qui suit:
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.backgroundView = _backgroundImageView;
}
J'ai modifié votre projet de test et affiché ici: http://www.codeveloper.com/TestCustomCellWithViewBackground-TomSwift.zip
Cela devrait fonctionner. Postez votre code. – coneybeare
Pouvez-vous clarifier un peu votre question? Concrètement, qu'entendez-vous par «l'arrière-plan reste derrière les cellules mais défile avec les cellules»? – Brandon
On dirait que vous êtes vraiment proche. Que faire si vous redimensionnez votre table pour qu'elle soit un peu plus petite que votre arrière-plan? Pouvez-vous le voir alors? Si c'est le cas, votre vue de table est probablement découpée en sous-vues. – Brandon