2009-07-31 14 views

Odpowiedz

21

można narysować kolor do CGContext a następnie zrobić zdjęcie z nim:

- (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

myślę, że istnieje jakiś sposób, który sprawia, że ​​łatwo niż rysowania. Widziałem to kiedyś podczas surfowania, ale pamiętajcie o tym. Pomyślałem o opublikowaniu tutaj, jeśli ktoś o tym wie. – rkb

+0

Rysowanie to ~ 7 linii, które można owijać wygodną metodą, nie widzę, żeby było znacznie łatwiej, nie jest to typowa funkcja. –

+0

Rozważ UIGraphicsGetImageFromCurrentImageContext(); zamiast UIGraphicsGetImageFromCurrentImageContext (void); – LordParsley

2

Jeśli jesteś po prostu stara się stworzyć solidną prostokąt koloru dlaczego nie po prostu zrobić coś podobnego

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

A następnie dodaj widok do dowolnego podglądu, który chcesz pokazać jednolity kolor.

(To znaczy, oczywiście tylko wtedy, gdy to, co próbujesz osiągnąć. Może nie jesteś)

Powiązane problemy