2010-02-16 13 views
5

J'essaye de créer une vue de grille en utilisant un UITableView (mes questions plus anciennes m'ont pointé dans cette direction) et suis actuellement en train de configurer les vues pour les éléments individuels. Après avoir créé un UITableViewCell personnalisé qui affiche 3 éléments par ligne, j'ai décidé de tirer ces éléments dans une sous-classe de UIView appelée ItemView.Couleur de fond UIView

Cet ItemView sera ensuite ajouté en tant que sous-vue à l'UITableViewCell personnalisé pour afficher la grille. Quoi qu'il en soit, j'ai réussi à créer la vue et je peux l'obtenir pour afficher une amende UILabel, mais j'ai du mal à changer ItemView pour être transparent en dehors des UIViews (étiquettes, boutons, images, etc) à l'intérieur. Voici mon code pour l'UIView:

#import <UIKit/UIKit.h> 
@interface ItemView : UIView { 
} 
@end 

#import "ItemView.h" 
@implementation ItemView 

- (id)initWithFrame:(CGRect)frame { 
    if ((self = [super initWithFrame:frame])) { 
    } 
    return self; 
} 

- (void)drawRect:(CGRect)rect { 
    [self setBackgroundColor:[UIColor lightGrayColor]]; 
} 

- (void)dealloc { 
    [super dealloc]; 
} 
@end 

Où dois-je définir la couleur d'arrière-plan pour qu'il fonctionne correctement?

Vive

+0

Salut Jack, Pouvez-vous s'il vous plaît poster ici la solution? – Piyush

Répondre

11

Essayez:

self.backgroundColor = [UIColor clearColor]; 

Je ne vois aucune raison de ne pas avoir que dans votre méthode init. Je ne pense pas que vous souhaitiez remplacer drawRect: dans ce cas, vous devrez dessiner la vue entière vous-même.

+1

Je l'avais essayé, mais après avoir parcouru le reste de mon code, j'ai trouvé un tas de choses qui le gâchaient. Finalement, ça a marché. Merci pour la réponse. – Jack