2010-11-11 6 views
2

J'ai un UIView que j'ai déposé à l'intérieur d'un autre UIView dans IB (version iPad), je le fais pour que je puisse contrôler la couleur de fond de la région.UIView sur iPad avec GroupTableViewBackgroundColor

Chose étrange, si je mets la couleur d'arrière-plan de l'UIView à GroupTableViewBackgroundColor, soit en IB ou en code, la couleur est toujours blanche, elle ne respecte pas le changement de couleur et n'est pas reflétée dans IB.

Est-ce que quelqu'un a vu ce comportement et a trouvé une solution?

Merci d'avance.

Répondre

0

Je ne sais pas si c'est lié à votre problème, mais Apple a apporté quelques modifications à UITableView pour iOS 3.2. Ils ont introduit une nouvelle propriété à UITableView définie comme suit:

@property (nonatomic, readwrite, retain) UIView *backgroundView; 

Cette nouvelle vue se trouve derrière les cellules du tableau, en-tête et pied de page qui peut être source de confusion si vous définissez la vue tableau couleur de fond. Pour contourner ce problème rapide, si vous voulez juste changer la couleur, vous pouvez supprimer la nouvelle vue:

tableView.backgroundView = nil; 

Vous devriez alors obtenir le même comportement que sur l'iPhone lorsque vous définissez tableView.backgroundColor. (Bien sûr, cela peut changer avec iOS 4.2).

2

Je pense que je sais ce que vous dites. Vous voulez que la vue soit la même que celle d'une vue de groupe même si elle n'est pas une vue de table de groupe. C'est ce que j'ai fait:

UITableView *tv = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]; 
UIView *backgroundView = tv.backgroundView; 
[self.view addSubview:backgroundView]; 
[tv release]; 
CGRect backgroundFrame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 
[backgroundView setFrame:backgroundFrame]; 
[self.view sendSubviewToBack:backgroundView];