2011-05-17 21 views
9

Una pregunta rápida, quiero cambiar el color de UITableViewCellAccessoryDisclosureIndicator (la flecha en el lado derecho de tableView) del gris predeterminado al color blanco.Cambiar el color de UITableViewCellAccessoryDisclosureIndicator

cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator; 
+0

Pregunta anterior pero no tenía una respuesta satisfactoria todavía. Esto es lo que * realmente * pidió: http://stackoverflow.com/a/35427683/378024 – galambalazs

Respuesta

15

¡Debe crear una imagen y usarla en su lugar!

celular. accessoryView = myAccessoryUIImageView;

+0

es de alguna manera para cambiar el color UITableViewCellAccessoryDisclosureIndicato en el iPhone de forma predeterminada – kingston

+1

dudo que sea posible cambiar de forma predeterminada. ¿Podría subclasificar UITableViewCell y personalizar todo y quizás reutilizarlo en cualquier otro lugar? – prakash

+0

** Es posible colorear el indicador Apple original: ** Ver mi respuesta: http://stackoverflow.com/a/35427683/378024 (sin usar imágenes personalizadas o código de dibujo personalizado) – galambalazs

2

Para otros que todavía están tropezar con esta pregunta, aquí está cómo hacerlo mediante programación.

crear una subclase UIView y Reemplazar drawRect: con lo siguiente:

#define PADDING 4.f //give the canvas some padding so the ends and joints of the lines can be drawn with a mitered joint 

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor); 
    CGContextSetLineWidth(context, 3.f); 
    CGContextSetLineJoin(context, kCGLineJoinMiter); 

    CGContextMoveToPoint(context, PADDING, PADDING); 
    CGContextAddLineToPoint(context, self.frame.size.width - PADDING, self.frame.size.height/2); 
    CGContextAddLineToPoint(context, PADDING, self.frame.size.height - PADDING); 

    CGContextStrokePath(context); 
} 

Esto dibuja una flecha indicadora de valores. Desde aquí se puede cambiar el color, grosor de línea, etc.

Para añadir el indicador de vista a su celular:

#define ACCESSORY_WIDTH 13.f 
#define ACCESSORY_HEIGHT 18.f 

cell.accessoryView = [[AccessoryIndicatorView alloc] initWithFrame:CGRectMake(self.frame.size.width - ACCESSORY_WIDTH - CELL_PADDING, self.frame.size.height/2 - ACCESSORY_HEIGHT/2, ACCESSORY_WIDTH, ACCESSORY_HEIGHT)]; 
6

Para cambiar el color de UITableViewCellAccessoryDetailDisclosureButton:

cell.tintColor = [UIColor whiteColor]; 
+0

La única respuesta correcta aquí. – Andy

+3

La respuesta puede ser "correcta" pero lamentablemente no responde la pregunta que se hizo. UITableViewCellAccessoryDisclosureIndicator no es lo mismo que UITableViewCellAccessoryDetailDisclosureButton. :( –

+0

UITableViewCell no tiene tal método tintColor –

2

podrás find incluyendo MSCellAccessory ayudará de muchas maneras diferentes, incluyendo el cambio del color de la UITableViewCellAccessoryDetailDisclosureButton