Понимание местоположения CAGradient? - PullRequest
1 голос
/ 24 марта 2011

Я создаю простую панель со слоем CAGradient.У меня есть 6 цветов, которые я хочу равномерно распределить по слою.

NSMutableArray *colors = [NSArray arrayWithObjects:
                          (id)[[UIColor colorWithRed:0/255.0 green:102.0/255.0 blue:102.0/255.0 alpha:.95] CGColor],
                          (id)[[UIColor colorWithRed:204.0/255.0 green:153.0/255.0 blue:0/255.0 alpha:.95]CGColor],
                         (id)[ [UIColor colorWithRed:204.0/255.0 green:102.0/255.0 blue:51.0/255.0 alpha:.95]CGColor],
                         (id)[ [UIColor colorWithRed:204.0/255.0 green:51.0/255.0 blue:51.0/255.0 alpha:.95]CGColor],
                         (id)[ [UIColor blackColor]CGColor],nil];

NSMutableArray *locations = [NSArray arrayWithObjects:
                                [NSNumber numberWithFloat:0.0],
                                [NSNumber numberWithInt:0.14],
                                [NSNumber numberWithInt:0.28],
                                [NSNumber numberWithInt:0.42],
                                [NSNumber numberWithInt:0.56],
                                [NSNumber numberWithInt:0.70],
                                [NSNumber numberWithInt:0.84],
                                [NSNumber numberWithInt:1.0],nil];

и реализовать их с помощью:

 gradientLayer_.colors =colors;
 gradientLayer_.locations=locations;

Но я получаю полностью черную полосу.когда я удаляю местоположения, я вижу градиент идеально, но он не очень хорошо разделен.

Мне кажется, что я плохо понимаю местоположения.

любая помощь?

1 Ответ

3 голосов
/ 24 марта 2011
  1. Вы используете [NSNumber numberWithInt:] в нескольких определениях мест остановки.Используйте [NSNumber numberWithFloat:].
  2. Количество цветов должно совпадать с количеством остановок.У вас есть 5 цветов и 8 остановок.Либо добавьте 3 цвета, либо удалите 3 остановки.
...