UIButton с GradientLayer затемняет изображение и затемняет градиент

У меня есть UIButton, где я хотел бы иметь градиент в качестве фона под изображением (символ с прозрачным фоном), но я сталкиваюсь с двумя разными проблемами.

Первый слой CAGradientLayer, кажется, накладывается поверх изображения, как бы я ни пытался его добавить, полностью скрывая изображение.

Во-вторых, кажется, что сам градиент сильно затемнен, как будто кнопка была отключена, а это не так.

Вот мой код:

self.backButton = [[UIButton alloc] initWithFrame:CGRectMake(15, 35, 28, 28)];
[backButton addTarget:self
               action:@selector(goBack)
     forControlEvents:UIControlEventTouchUpInside];
[backButton setBackgroundColor:[UIColor clearColor]];
CAGradientLayer *buttonGradient = [CAGradientLayer layer];
buttonGradient.frame = backButton.bounds;
buttonGradient.colors = [NSArray arrayWithObjects:
                         (id)[[UIColor colorWithRed:.0
                                              green:.166
                                               blue:.255
                                              alpha:1] CGColor], 
                         (id)[[UIColor colorWithRed:.0
                                              green:.113
                                               blue:.255
                                              alpha:1] CGColor], 
                         nil];
[buttonGradient setCornerRadius:backButton.frame.size.width / 2];
[backButton.layer insertSublayer:buttonGradient
                         atIndex:0];
[backButton setImage:[UIImage imageNamed:@"backarrow.png"]
            forState:UIControlStateNormal];
[backButton setEnabled:NO];
[topbarView addSubview:backButton];
31
задан Christian A. Strømmen 12 November 2011 в 18:37
поделиться