UIView Gradient с использованием CAGradientLayer всегда синий

Я пытаюсь создать UIView с темно-серым градиентом:

UIView *sectionSpacer = [[UIView alloc] init];
sectionSpacer.backgroundColor = [UIColor clearColor];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = sectionSpacer.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[RGB(80, 83, 88) CGColor], (id)[RGB(69, 71, 73) CGColor], nil];
[sectionSpacer.layer addSublayer:gradient];

введите здесь описание изображения

По какой-то причине вид градиента всегда синий, даже если значения RGB темно-серые. Почему это?


person Nic Hubbard    schedule 05.04.2013    source источник


Ответы (1)


Если вы просто init представляете вид без рамки, по умолчанию он будет равен CGRectZero, поэтому ваш слой также будет иметь ширину и высоту 0, поэтому вы его не видите (видимый градиент выглядит как стандартный UITableView заголовок, который может исходить из другого места, я сомневаюсь, что это даже то же самое представление, которое вы инициализируете в показанном вами коде).

person omz    schedule 05.04.2013