it-roy-ru.com

Установить альфа-фон UIButton, но не заголовок

Когда я устанавливаю альфа кнопки, это также влияет на непрозрачность заголовка. Есть ли способ нацелить только на фон и оставить заголовок альфа на 1,0?

20
Jon

Это работает для меня:

self.myButton.backgroundColor = [UIColor clearColor];

или если вы не хотите, чтобы это было полностью ясно, но все же с прозрачностью, вы можете использовать:

self.myButton.backgroundColor = [UIColor colorWithRed:200.0/255.0 green:200.0/255.0 blue:200.0/255.0 alpha:0.5];

Второй пример даст вам серый цвет с альфа 0,5.

Обновление Swift 4

myButton.backgroundColor = .clear

OR

myButton.backgroundColor = UIColor(red: 200.0/255.0, green: 200.0/255.0, blue: 200.0/255.0, alpha:0.5)
24
SasaT

Вы также можете изменить альфа цвета в раскадровке,

см. прикрепленное изображение:

 change alpha of color in storyboard/interface builder

17
brush51

В Свифт :

import UIKit

class SignInUpMenuTableViewControllerBigButton: UIButton {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.applyCustomDesign()
    }

    func applyCustomDesign() {
        // We set the background color of the UIButton.
        self.clearHighlighted()
    }

    override var highlighted: Bool {
        didSet {
            if highlighted {
                self.highlightBtn()
            } else {
                self.clearHighlighted()
            }
        }
    }

    func highlightBtn() {
        self.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.0)
    }

    func clearHighlighted() {
        self.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.05)
    }

}
7
King-Wizard

Создание подкласса UIButton и расширение setEnabled: метод, кажется, работает:

- (void) setEnabled:(BOOL)enabled {    
    [super setEnabled:enabled];
    if (enabled) {
        self.imageView.alpha = 1;
    } else {
        self.imageView.alpha = .25;
    }
}
1
lakesh

Swift button.backgroundColor = UIColor.white.withAlphaComponent(0.7)

0
m.alqadi

С помощью UIButton вы можете удалить фон, установив стиль кнопки на Custom, а не Round Rect. Это сохраняет заголовок без изменений, но фон кнопки удален. Если вы делаете это в раскадровке, вы можете изменить стиль кнопки в свойствах элемента. Для кода этот формат:

UIButton *button = [[UIButton alloc] buttonWithType:UIButtonTypeCustom];
// Setup frame and add to view
0
Alex Blundell