Как удалить выбранный фоновый цвет UIButton?
Я ищу решение этой проблемы, которая НЕ требует использования изображений /PNG. Я ищу способ удалить синий цвет фона UIButton
, когда он находится в выбранном состоянии, и я просто не могу найти способ сделать это без использования изображений. В основном я пытаюсь сделать что-то подобное в случае UITableViewCell
:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Ответы
Ответ 1
К сожалению, я сейчас не в машине, но есть две вещи, которые вы могли бы попробовать.
Сначала нужно установить следующее свойство:
button.adjustsImageWhenHighlighted = NO;
Или снимите флажок "Выделение подстроки изображения" в Interface Builder.
Если это не работает, как вы ожидаете, вы можете отменить выбор кнопки в действии, к которому вы привязали ее, например:
- (IBAction)yourButtonAction:(id)sender {
[sender setHighlighted:NO];
}
Ответ 2
У меня была эта же проблема, и я разрешил ее, изменив тип UIButton с "System" на "Custom". Голубой цвет фона не отображается в выбранном состоянии, когда он является "Пользовательским".
Ответ 3
Измените альфа цвета tintColor на ноль, работает, если iOS 5.0 или новее
UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
button.tintColor = color;
Ответ 4
Очень просто, в storyBoard
выберите UIButton
и откройте attribute inspector
. Теперь прокрутите вниз до раздела View
и измените свойство Tint
на Clear Color
или любой другой цвет, если хотите.
![enter image description here]()
Ответ 5
UIButton также с типом custom
, мы можем установить его в xcode
as-
![введите описание изображения здесь]()
ИЛИ
Программно как -
let customButton = UIButton(type: .custom)
customButton.setTitle("this is Button", for: .normal)
customButton.setTitleColor(UIColor.blue, for: .normal)
customButton.frame = CGRect(x: 15, y: 50, width: 300, height: 500)
self.view.addSubview( customButton)
Теперь больше нет цвета голубого цвета UIButton
Ответ 6
Что для меня изменило кнопку button.tintColor в выделенном состоянии. Это быстро 3, iOS 10
override public var isHighlighted: Bool {
didSet {
self.tintColor = UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 1.0)
}
}
Или вы можете сделать то же самое в построителе интерфейса
Выберите состояние кнопки
Выберите цвет оттенка кнопки
Ответ 7
Быстрая версия
extension UIButton {
override public var highlighted: Bool {
didSet {
// clear background color when selected
self.layer.backgroundColor = .None
}
}
}
Ответ 8
Не прямой ответ на вопрос OP, но чтобы удалить этот цвет в подклассе UIButton
вы можете сделать это:
override func layoutSubviews() {
tintColor = .clear
super.layoutSubviews()
}
Ответ 9
Использование...
[myButton setAdjustsImageWhenHighlighted:FALSE];
Ответ 10
Не уверен, что это лучший способ. Но у вас может быть невидимая кнопка или просмотр на текущей кнопке, а затем распознается, когда нажата верхняя кнопка/вид.