Когда я устанавливаю альфа кнопки, это также влияет на непрозрачность заголовка. Есть ли способ настроить таргетинг только на задний план и оставить заголовок alpha в 1.0?
Установите альфа фона UIButton, но не заголовок
Ответ 1
Это работает для меня:
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.
Ответ 2
Вы также можете изменить альфу цвета в раскадровке,
см. прикрепленное изображение:
Ответ 3
В Swift:
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)
}
}
Ответ 4
Подклассификация UIButton и расширение метода setEnabled: кажется, работает:
- (void) setEnabled:(BOOL)enabled {
[super setEnabled:enabled];
if (enabled) {
self.imageView.alpha = 1;
} else {
self.imageView.alpha = .25;
}
}
Ответ 5
Вы используете простой фон для фона? Или вы используете изображение?
Если вы используете изображение, вы можете использовать изображение с встроенной альфой.
Если вы используете цвет, тогда вы можете установить альфа на цвет.
Однако изменение альфы любого представления влияет на все под-представления.
Ответ 6
С помощью UIButton вы можете удалить фон, установив стиль кнопки "Пользовательский", а не Round Rect. Это сохраняет название неповрежденным, но фон кнопки удаляется. Если вы делаете это в Storyboards, вы можете изменить стиль кнопки в свойствах элемента. Для кода формат:
UIButton *button = [[UIButton alloc] buttonWithType:UIButtonTypeCustom];
// Setup frame and add to view