¿Qué le parece subclasificar UIView y agregar un UIImage ivar (imagen llamada)? Luego, puede anular -drawRect: algo así, siempre que tenga un booleano ivar llamado presionado que se configuró al tocarlo.
- (void)drawRect:(CGRect)rect
{
[image drawAtPoint:(CGPointMake(0.0, 0.0))];
// if pressed, fill rect with dark translucent color
if (pressed)
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSaveGState(ctx);
CGContextSetRGBFillColor(ctx, 0.5, 0.5, 0.5, 0.5);
CGContextFillRect(ctx, rect);
CGContextRestoreGState(ctx);
}
}
Desea experimentar con los valores RGBA anteriores. Y, por supuesto, las formas no rectangulares requerirían un poco más de trabajo, como un CGMutablePathRef.
¿Es posible utilizar un 'UIButton' en su lugar? –