2009-07-31 12 views

Respuesta

21

Puede dibujar el color en un CGContext y luego capturar una imagen de ella:

- (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size { 
    //Create a context of the appropriate size 
    UIGraphicsBeginImageContext(size); 
    CGContextRef currentContext = UIGraphicsGetCurrentContext(); 

    //Build a rect of appropriate size at origin 0,0 
    CGRect fillRect = CGRectMake(0,0,size.width,size.height); 

    //Set the fill color 
    CGContextSetFillColorWithColor(currentContext, color.CGColor); 

    //Fill the color 
    CGContextFillRect(currentContext, fillRect); 

    //Snap the picture and close the context 
    UIImage *retval = UIGraphicsGetImageFromCurrentImageContext(void); 
    UIGraphicsEndImageContext(); 

    return retval; 
} 
+0

Creo que hay algún método que hace que sea fácil de dibujar ella. Lo vi en algún momento mientras navegaba pero no lo recuerdo. Pensé en publicarlo aquí si alguien lo sabe. – rkb

+0

Dibujando es ~ 7 líneas que puede envolver en un método de conveniencia, no veo que sea mucho más fácil, no es exactamente una función común. –

+0

Considera UIGraphicsGetImageFromCurrentImageContext(); en lugar de UIGraphicsGetImageFromCurrentImageContext (void); – LordParsley

2

Si sólo está tratando de crear un rectángulo sólido de color de ¿por qué no hacer algo como

UIView *solid = [[UIView alloc] initWithFrame:someFrame]; 
solid.backgroundColor = [UIColor greyColor]; 

Y luego agregue la vista a la subvista en la que desea mostrar el color sólido.

(Esto es, por supuesto, sólo si eso es lo que estamos tratando de lograr. Tal vez usted no está)

Cuestiones relacionadas