2012-01-03 15 views
9

Tengo un problema extraño. Creé una clase heredando de UITableViewCell con un miembro UIView.No puedo acceder a las propiedades de capa de una UIView en UITableViewCell

@interface MTReportPieChartTableViewCell : UITableViewCell { 
    UIView *_colorView; 
} 
@property (nonatomic, retain) IBOutlet UIView *colorView; 
@end 

En el archivo de implementación, quiero acceder a las propiedades de la capa de colorView, pero xcode muestra "sin terminación".

@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 "Propiedad 'CornerRadius' no se puede encontrar en la clase de objeto hacia adelante 'CALayer'". Sin embargo, puedo acceder a cornerRadius en otra clase.

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

¿Por qué sucede esto? ¡No tengo ninguna idea de dónde hice mal en el código!

Respuesta

0

Trate de llegar a la capa de vista de contenido:

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

Esto no funciona. self.contentView no tiene colorView. –

28

¿Ha importado <QuartzCore/QuartzCore.h> en esta clase?

+0

No, pero importé , y pude declarar una variable con el tipo CALayer *. En el archivo donde declaro la celda MTReportPieChartTableViewCell *, ese archivo solo importa . He considerado este caso. –

+0

Esta es la importación correcta, funciona para mí. – KomodoDave

Cuestiones relacionadas