36 votes

est groupTableViewBackgroundColor obsolète sur iOS 6?

Je viens de tester mon application avec iOS 6.0 et Xcode 4.5 GM et j'ai mis en place un affichage comme ceci:

[self.view setBackgroundColor:[UIColor groupTableViewBackgroundColor]];

Ainsi, la vue est le même modèle qu'une vue de la table.

Cela fonctionne très bien sur iOS 4 et 5, mais dans iOS 6, il me donne juste un fond blanc.

Est-ce déconseillé? Si oui, comment puis-je le remplacer?

Merci

31voto

dhcdht Points 453

Cette méthode est déconseillée au cours de la 6.0 programme seed Si vous voulez avoir un arrière-plan dans votre propre point de vue, qui ressemble à la table de fond de la vue, ensuite, vous devez créer une table vide de la vue et de la placer derrière votre contenu.

25voto

NSElvis Points 3083

Tout d'abord, ajoutez ceci à votre viewDidLoad:

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

OU

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

Puis ajouter cette image à votre application:

tableViewBackground.png

tableViewBackground.png

tableViewBackground@2x.png

tableViewBackground@2x.png

18voto

phix23 Points 24407

J'ai écrit un UIColor catégorie de remplacer groupTableViewBackgroundColor:

@interface UIColor (UITableViewBackground)
+ (UIColor *)groupTableViewBackgroundColor;    
@end

@implementation UIColor (UITableViewBackground)

+ (UIColor *)groupTableViewBackgroundColor
{
    __strong static UIImage* tableViewBackgroundImage = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(7.f, 1.f), NO, 0.0);
        CGContextRef c = UIGraphicsGetCurrentContext();
        [[self colorWithRed:185/255.f green:192/255.f blue:202/255.f alpha:1.f] setFill];
        CGContextFillRect(c, CGRectMake(0, 0, 4, 1));
        [[self colorWithRed:185/255.f green:193/255.f blue:200/255.f alpha:1.f] setFill];
        CGContextFillRect(c, CGRectMake(4, 0, 1, 1));
        [[self colorWithRed:192/255.f green:200/255.f blue:207/255.f alpha:1.f] setFill];
        CGContextFillRect(c, CGRectMake(5, 0, 2, 1));
        tableViewBackgroundImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    });
    return [self colorWithPatternImage:tableViewBackgroundImage];
}

@end

Cette solution permet également de modifier l'apparence de l'arrière-plan. N'hésitez pas à changer le code de dessin :)

13voto

Antoine Beloeuvre Points 309

Dans iOS6 SKD, les commentaires dans UIInterface.h suggèrent ce qui suit:

Style de groupe vue de la table origines ne peut plus être représentée par une simple couleur. Si vous voulez avoir un arrière-plan dans votre propre point de vue qui ressemble à la vue de la table d'arrière-plan, alors vous devriez créer une table vide de la vue et de la placer derrière votre contenu.

Cette méthode est déconseillée au cours de la 6.0 programme seed

Une solution simple consiste à définir l'arrière-plan avec les valeurs RVB équivalentes:

[self.view setBackgroundColor:[UIColor colorWithRed:215.0/255.0 green:217.0/255.0 blue:223.0/255.0 alpha:1.0]];

Vous pouvez mettre de la vue arrière-plan de couleur Blanche ou ce que vous voulez dans le xib pour supprimer l'avertissement.

6voto

James Boutcher Points 1048

Si ça aide quelqu'un, voici précisément ce que je fais dans ma vue personnalisée pour obtenir ce contexte (à l'aide de l'indice de M. Beloeuvre)

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor clearColor];
    UITableView *tv = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
    [self.view addSubview:tv];
    [self.view sendSubviewToBack:tv];
    // ...
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X