Цвет заливки UIView

Я добавил UIView в файл пера. Я хочу заполнить этот UIView цветом методом drawRect. Как я могу это сделать?


person Priya    schedule 25.03.2011    source источник


Ответы (4)


Вы можете использовать ссылку frame UIView для рисования прямоугольника. Просто передайте его в CGContextFillRect. функцию (задав цвет заливки контекста).

Закрашивает область, содержащуюся в предоставленном прямоугольнике, используя цвет заливки в текущем графическом состоянии.

Итак, код в drawRect:

- (void)drawRect:(CGRect)rect 
{
    CGContextRef context = UIGraphicsGetCurrentContext ();

    // The color to fill the rectangle (in this case black)
    CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1.0);

    // draw the filled rectangle
    CGContextFillRect (context, self.bounds);
}
person RedBlueThing    schedule 25.03.2011
comment
как использовать свойство кадра для рисования прямоугольника? - person Priya; 25.03.2011
comment
@Priya свойство фрейма - это CGRect (прямоугольник для представления). Это параметр, который вы передаете CGContextFillRect. Код, который я перечислил, будет делать то, что вам нужно. - person RedBlueThing; 25.03.2011
comment
Используйте self.bounds в CGContextFillRect. Для скругления углов: self.layer.cornerRadius = self.height/2; self.clipsToBounds = ДА - person HotJard; 16.05.2013

Почему бы просто не установить backgroundColor в желаемую цветовую заливку?

person Kendall Helmstetter Gelner    schedule 25.03.2011

Вы можете использовать это, если вам действительно нужно использовать drawRect: :

- (void)drawRect:(CGRect)rect {
    CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]);
    CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);
    CGContextAddRect(context, CGRectMake(0, 0, 320, 460));
}
person Angelo    schedule 25.03.2011

Установка цвета фона в подвиде ячейки табличного представления приводит к невидимости этого представления из-за того, что при включенном стиле редактирования выбор ячейки приводит к изменению цвета всего фонового представления.

person djay    schedule 29.02.2016