Как добавить CAGradientLayer в UIButton

Я пытаюсь изменить внешний вид кнопки и долгое время пытался выяснить, почему я не могу применить к нему градиент, как с помощью этого простого кода ниже:

[self.playButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; self.playButton.backgroundColor = [UIColor blackColor]; CAGradientLayer *gradient = [[CAGradientLayer alloc] init]; gradient.frame = self.playButton.bounds; gradient.position = CGPointMake(self.playButton.bounds.size.width/2, self.playButton.bounds.size.height/2); gradient.colors = [NSArray arrayWithObjects: (id)[UIColor greenColor].CGColor, (id)[UIColor redColor].CGColor, nil]; gradient.locations = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:1.0f], nil]; [self.playButton.layer addSublayer:gradient]; 

Он выполняется, но ничего не происходит. Я знаю, что код должен работать, потому что многие другие используют его и, когда меняют self.playButton чтобы сказать self.view тогда он добавляет красивый красно-зеленый градиентный слой в UIView .

Возможно, стоит отметить, что пользовательская кнопка определяется как IBOutlet :

 @property (weak, nonatomic) IBOutlet UIButton *playButton; 

Любая помощь приветствуется.

ОБНОВЛЕНИЕ И ИСПРАВЛЕНИЕ

При смене кнопки для использования масштабируемого изображения вместо градиента я забыл перекомпоновать код градиента (после попытки идеи rokjarc ) и при изменении UIViewContentModeScaleToFill изображенияView.content на UIViewContentModeScaleToFill отображаемый градиент …

 self.playButton.imageView.contentMode = UIViewContentModeScaleToFill; 

Так что спасибо rokjarc, я полагаю: D

One Solution collect form web for “Как добавить CAGradientLayer в UIButton”

Просто измените

 self.playButton.backgroundColor = [UIColor blackColor]; 

в

 self.playButton.backgroundColor = [UIColor clearColor]; 

Просто протестирован и работает.

  • Как добавить UIButton в UIToolBar программно?
  • Получите IndexPath из подкласса UITableViewCell в Swift
  • Swift - UIButton overriding setSelected
  • Программно созданная кнопка не запускает событие в пользовательском представлении в iOS
  • установка меток, кнопок на панели навигации iOS
  • Панель управления iOS после поворота устройства
  • iOS - Interface Builder: название UIButton исчезает при настройке изображения
  • UIButton не выделен на границе
  • Цветовой оттенок UIButton Image
  • Автоматическое изменение размера шрифта для быстрой установки кнопки
  • Использование resizableImageWithCapInsets: изображение для кнопки работает только для набора состояний, другие состояния показывают «пробел»,
  • Interesting Posts

    Ошибка MT1108: Не удалось найти инструменты для этого устройства

    Аварийные сообщения в App Store не сообщаются в Crashlytics

    Xml Сериализация / десериализация класса в Swift

    Как установить первичный ключ в модели Swift для Realm

    Производительность мобильной сети: какой был бы самый эффективный тип данных для передачи данных с веб-сервера на мобильный телефон?

    UIWebView Expose Objective C для JavaScript

    Пакет настроек приложения не отображается в приложении настроек при использовании openurl

    Кнопка UIActionSheetIndex ошибочна при использовании более 6 пользовательских кнопок?

    ios перемещает событие касания между двумя uiscrollview

    Набор Sprite не находит nodeAtPoint после перемещения родительского SKNode

    iOS 7 – Исправлена ​​ошибка панели инструментов на виртуальной клавиатуре

    Лучшая альтернатива для NSTimer

    Почему жесты распознавания жестов по умолчанию

    Как подождать, пока CCMenuItemImage не будет нажата в цель C?

    Ad hoc или распространять приложение для бета-тестирования? Испытательный рейс

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.