objective-c ios7 uibutton tintcolor

objective c - Tintcolor en el borde personalizado de UIButton



objective-c ios7 (1)

Implemente tintColorDidChange en su subclase UIButton. iOS cambia el tintColor de tu botón a gris, pero borderColor de la capa sigue siendo el color azul antiguo. Tienes que cambiar borderColor, no hay forma de que iOS sepa que el borde debe ser de color como tu tinte.

- (void)tintColorDidChange { [super tintColorDidChange]; [self setNeedsDisplay]; }

Después de usar setNeedsDisplay el sistema llamará a drawRect: , que debería actualizar el color de la capa.

Probablemente puedas usar esto también:

- (void)tintColorDidChange { [super tintColorDidChange]; [[self layer] setBorderColor:self.tintColor.CGColor]; }

Hago una subclase de UIButton para borde personalizado redondeado:

- (void)drawRect:(CGRect)rect { [[self layer] setCornerRadius:CORNER_RADIUS]; [[self layer] setMasksToBounds:YES]; [[self layer] setBorderWidth:1]; [[self layer] setBorderColor:self.tintColor.CGColor]; [self.imageView setTintColor:self.tintColor]; }

El problema es cuando aparece un popover, el borde personalizado no tiene el mismo comportamiento que el otro control con tintColor:

¿Cómo puedo manejarlo?

Muchas gracias