2012-01-03 12 views
9

Ho uno strano problema. Ho creato una classe che eredita da UITableViewCell con un membro UIView.Impossibile accedere alle proprietà del livello di un UIView in UITableViewCell

Nel file di implementazione, voglio accedere alle proprietà del layer di colorView, ma xcode mostra "no completion".

@implementation MTReportPieChartTableViewCell 
@synthesize colorView = _colorView; 
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     self.colorView.layer.cornerRadius = 3.0f; // Error occurs in this line 
    } 
    return self; 
} 
@end 

xcode dice "Proprietà 'cornerRadius' non può essere trovato nell'oggetto di classe 'CALayer'". Tuttavia, posso accedere a cornerRadius in un'altra classe.

MTReportPieChartTableViewCell *cell = (MTReportPieChartTableViewCell *) [tableView dequeueReusableCellWithIdentifier:[MTReportPieChartTableViewCell identifier]]; 
cell.colorView.layer.cornerRadius = 3.0f; // This line works fine! 

Perché questo succede! Non ho assolutamente idee su dove ho sbagliato nel codice!

risposta

0

provare a ottenere per lo strato di vista dei contenuti:

self.contentView.colorView.layer.cornerRadius = 3.0f; 
+1

Questo non funziona. self.contentView non ha colorView. –

28

Avete importati <QuartzCore/QuartzCore.h> in questa classe?

+0

No, ma ho importato e ho potuto dichiarare una variabile con tipo CALayer *. Nel file in cui ho dichiarato la cella MTReportPieChartTableViewCell *, quel file importa solo . Ho preso in considerazione questo caso. –

+0

Questa è l'importazione corretta, funziona per me. – KomodoDave

Problemi correlati