2009-07-31 4 views

ответ

21

Вы можете сделать цвет в CGContext, а затем захватить изображение из него:

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

Я думаю, что есть какой-то метод, который делает его легким, чем рисование его. Я видел его когда-нибудь, серфинг, но помню его. Мысль о публикации здесь, если кто-нибудь это знает. – rkb

+0

Рисование - это 7 строк, которые вы можете обернуть в удобном методе, я не вижу, чтобы это стало намного проще, это не совсем обычная функция. –

+0

Рассмотрим UIGraphicsGetImageFromCurrentImageContext(); вместо UIGraphicsGetImageFromCurrentImageContext (void); – LordParsley

2

Если вы просто пытаетесь создать твердый прямоугольник цвета, почему не просто сделать что-то вроде

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

А затем добавьте представление в любой подзаголовок, который вы хотите показать сплошным цветом.

(То есть, конечно, если это то, что вы пытаетесь достичь. Может быть, вы не)