Как изменить цвет фона UIButton, пока он подсвечен?
В какой-то момент в моем приложении я выделил UIButton
(например, когда пользователь держит палец на кнопке), и мне нужно изменить цвет фона, когда кнопка подсвечена (так, пока палец пользователя все еще находится на кнопке).
Я попробовал следующее:
_button.backgroundColor = [UIColor redColor];
Но это не работает. Цвет остается прежним. Я попробовал тот же кусок кода, когда кнопка не выделена, и она работает нормально. Я тоже пробовал звонить -setNeedsDisplay
после изменения цвета это не дало никакого эффекта.
Как заставить кнопку изменить цвет фона?
34 ответа
Вы можете переопределить UIButton
"s setHighlighted
метод.
Objective-C
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
if (highlighted) {
self.backgroundColor = UIColorFromRGB(0x387038);
} else {
self.backgroundColor = UIColorFromRGB(0x5bb75b);
}
}
Swift 3.0 и Swift 4.1
override open var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? UIColor.black : UIColor.white
}
}
Не уверен, что этот вид решает то, что вам нужно, или соответствует вашему общему ландшафту разработки, но в первую очередь я бы попытался изменить цвет фона кнопки в событии touchDown.
Опция 1:
Вам понадобятся два события для захвата, UIControlEventTouchDown будет для, когда пользователь нажимает кнопку. UIControlEventTouchUpInside и UIControlEventTouchUpOutside будут для, когда они отпустят кнопку, чтобы вернуть ее в нормальное состояние
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setFrame:CGRectMake(10.0f, 10.0f, 100.0f, 20.f)];
[myButton setBackgroundColor:[UIColor blueColor]];
[myButton setTitle:@"click me:" forState:UIControlStateNormal];
[myButton setTitle:@"changed" forState:UIControlStateHighlighted];
[myButton addTarget:self action:@selector(buttonHighlight:) forControlEvents:UIControlEventTouchDown];
[myButton addTarget:self action:@selector(buttonNormal:) forControlEvents:UIControlEventTouchUpInside];
Вариант 2:
Верните изображение, созданное из того цвета, который вы хотите. Это также может быть категория.
+ (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
а затем измените выделенное состояние кнопки:
[myButton setBackgroundImage:[self imageWithColor:[UIColor greenColor]] forState:UIControlStateHighlighted];
Нет необходимости переопределять highlighted
как вычисленное свойство. Вы можете использовать наблюдатель свойства, чтобы вызвать изменение цвета фона:
override var highlighted: Bool {
didSet {
backgroundColor = highlighted ? UIColor.lightGrayColor() : UIColor.whiteColor()
}
}
Swift 4
override open var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? UIColor.lightGray : UIColor.white
}
}
Удобное универсальное расширение в Swift:
extension UIButton {
private func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
func setBackgroundColor(color: UIColor, forUIControlState state: UIControlState) {
self.setBackgroundImage(imageWithColor(color), forState: state)
}
}
Swift 3.0
extension UIButton {
private func imageWithColor(color: UIColor) -> UIImage? {
let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(color.cgColor)
context?.fill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
func setBackgroundColor(_ color: UIColor, for state: UIControlState) {
self.setBackgroundImage(imageWithColor(color: color), for: state)
}
}
В Swift вы можете переопределить метод доступа выделенного (или выбранного) свойства, а не переопределять метод setHighlighted
override var highlighted: Bool {
get {
return super.highlighted
}
set {
if newValue {
backgroundColor = UIColor.blackColor()
}
else {
backgroundColor = UIColor.whiteColor()
}
super.highlighted = newValue
}
}
Переопределить выделенную переменную. Добавление @IBInspectable
заставляет вас редактировать выделенный backgroundColor в раскадровке, что тоже изящно.
class BackgroundHighlightedButton: UIButton {
@IBInspectable var highlightedBackgroundColor :UIColor?
@IBInspectable var nonHighlightedBackgroundColor :UIColor?
override var highlighted :Bool {
get {
return super.highlighted
}
set {
if newValue {
self.backgroundColor = highlightedBackgroundColor
}
else {
self.backgroundColor = nonHighlightedBackgroundColor
}
super.highlighted = newValue
}
}
}
Мое лучшее решение для Swift 3+ без подклассов.
extension UIButton {
func setBackgroundColor(_ color: UIColor, for state: UIControlState) {
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContext(rect.size)
color.setFill()
UIRectFill(rect)
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
setBackgroundImage(colorImage, for: state)
}
}
С этим расширением легко управлять цветами для разных состояний, и оно автоматически исчезнет с вашего обычного цвета, если выделенный цвет не предусмотрен.
button.setBackgroundColor(.red, for: .normal)
Более компактное решение (на основе ответа @aleksejs-mjaliks):
Свифт 3/4 +:
override var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? .lightGray : .white
}
}
Свифт 2:
override var highlighted: Bool {
didSet {
backgroundColor = highlighted ? UIColor.lightGrayColor() : UIColor.whiteColor()
}
}
Если вы не хотите переопределять, это обновленная версия ответа @timur-bernikowich(Swift 4.2):
extension UIButton {
func setBackgroundColor(_ color: UIColor, forState controlState: UIControl.State) {
let colorImage = UIGraphicsImageRenderer(size: CGSize(width: 1, height: 1)).image { _ in
color.setFill()
UIBezierPath(rect: CGRect(x: 0, y: 0, width: 1, height: 1)).fill()
}
setBackgroundImage(colorImage, for: controlState)
}
}
Расширение UIButton с синтаксисом Swift 3+:
extension UIButton {
func setBackgroundColor(color: UIColor, forState: UIControlState) {
UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
UIGraphicsGetCurrentContext()!.setFillColor(color.cgColor)
UIGraphicsGetCurrentContext()!.fill(CGRect(x: 0, y: 0, width: 1, height: 1))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setBackgroundImage(colorImage, for: forState)
}}
Используйте это как:
YourButton.setBackgroundColor(color: UIColor.white, forState: .highlighted)
Оригинальный ответ: /questions/4150143/kak-ustanovit-tsvet-fona-uibutton-dlya-state-uicontrolstatehighlighted-v-swift/4150146#4150146
Вот подход в Swift, использующий расширение UIButton для добавления IBInspectable, называемого highlBackgroundColor. Подобно подклассу, не требуя подкласса.
private var HighlightedBackgroundColorKey = 0
private var NormalBackgroundColorKey = 0
extension UIButton {
@IBInspectable var highlightedBackgroundColor: UIColor? {
get {
return objc_getAssociatedObject(self, &HighlightedBackgroundColorKey) as? UIColor
}
set(newValue) {
objc_setAssociatedObject(self,
&HighlightedBackgroundColorKey, newValue, UInt(OBJC_ASSOCIATION_RETAIN))
}
}
private var normalBackgroundColor: UIColor? {
get {
return objc_getAssociatedObject(self, &NormalBackgroundColorKey) as? UIColor
}
set(newValue) {
objc_setAssociatedObject(self,
&NormalBackgroundColorKey, newValue, UInt(OBJC_ASSOCIATION_RETAIN))
}
}
override public var backgroundColor: UIColor? {
didSet {
if !highlighted {
normalBackgroundColor = backgroundColor
}
}
}
override public var highlighted: Bool {
didSet {
if let highlightedBackgroundColor = self.highlightedBackgroundColor {
if highlighted {
backgroundColor = highlightedBackgroundColor
} else {
backgroundColor = normalBackgroundColor
}
}
}
}
}
Надеюсь, это поможет.
Вы можете использовать эту категорию, которая добавляет метод setBackgroundColor: forState:
https://github.com/damienromito/UIButton-setBackgroundColor-forState-
Детали
- Xcode 11.1 (11A1027), Swift 5
Решение
import UIKit
extension UIColor {
func createOnePixelImage() -> UIImage? {
let size = CGSize(width: 1, height: 1)
UIGraphicsBeginImageContext(size)
defer { UIGraphicsEndImageContext() }
guard let context = UIGraphicsGetCurrentContext() else { return nil }
context.setFillColor(cgColor)
context.fill(CGRect(origin: .zero, size: size))
return UIGraphicsGetImageFromCurrentImageContext()
}
}
extension UIButton {
func setBackground(_ color: UIColor, for state: UIControl.State) {
setBackgroundImage(color.createOnePixelImage(), for: state)
}
}
Применение
button.setBackground(.green, for: .normal)
extension UIButton {
func setBackgroundColor(color: UIColor, forState: UIControl.State) {
let size = CGSize(width: 1, height: 1)
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(color.cgColor)
context?.fill(CGRect(origin: CGPoint.zero, size: size))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
setBackgroundImage(colorImage, for: forState)
}
}
Swift 5, спасибо @Maverick
Попробуй это!!!!
Для события TouchedDown установите один цвет, а для TouchUpInside - другой.
- (IBAction)touchedDown:(id)sender {
NSLog(@"Touched Down");
btn1.backgroundColor=[UIColor redColor];
}
- (IBAction)touchUpInside:(id)sender {
NSLog(@"TouchUpInside");
btn1.backgroundColor=[UIColor whiteColor];
}
Свифт 5, iOS 15+
Начиная с iOS 15, вы можете использовать новый API UIButton для настройки внешнего вида кнопок.
Система автоматически угаснет цвет фона вашей кнопки при нажатии на нее. Для этого вам не нужно добавлять дополнительный код.
var configuration = UIButton.Configuration.filled()
configuration.baseBackgroundColor = .systemBlue
configuration.baseForegroundColor = .white // used for title color
configuration.title = "My button"
configuration.buttonSize = .large
let myButton = UIButton(configuration: configuration)
Если вы хотите, чтобы ваша кнопка меняла цвет фона при нажатии на какой-то собственный цвет , добавьте это:
let configHandler: UIButton.ConfigurationUpdateHandler = { button in
switch button.state {
case .highlighted:
configuration.baseBackgroundColor = .systemRed
default:
configuration.baseBackgroundColor = .systemBlue
}
}
myButton.configurationUpdateHandler = configHandler
По этой теме есть отличная статья: https://sarunw.com/posts/dynamic-button-configuration/.
Документы Apple: https://developer.apple.com/documentation/uikit/uibutton/configuration .
Просто использовать ТОЛЬКО это расширение UIButton
extension UIButton {
func setBackgroundColor(color: UIColor, forState: UIControl.State) {
self.clipsToBounds = true // add this to maintain corner radius
UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
if let context = UIGraphicsGetCurrentContext() {
context.setFillColor(color.cgColor)
context.fill(CGRect(x: 0, y: 0, width: 1, height: 1))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setBackgroundImage(colorImage, for: forState)
}
}
}
и используйте это
optionButton.setBackgroundColor(color: UIColor(red:0.09, green:0.42, blue:0.82, alpha:1.0), forState: .selected)
optionButton.setBackgroundColor(color: UIColor(red:0.96, green:0.96, blue:0.96, alpha:1.0), forState: .highlighted)
optionButton.setBackgroundColor(color: UIColor(red:0.96, green:0.96, blue:0.96, alpha:1.0), forState: .normal)
ОБНОВИТЬ:
Используйте библиотеку https://github.com/acani/UIButtonBackgroundColor Swift.
OLD:
Используйте помощники ниже, чтобы создать изображение размером 1 px x 1 px с цветом заливки в оттенках серого:
UIImage *image = ACUTilingImageGray(248/255.0, 1);
или цвет заливки RGB:
UIImage *image = ACUTilingImageRGB(253/255.0, 123/255.0, 43/255.0, 1);
Затем используйте это image
установить фоновое изображение кнопки:
[button setBackgroundImage:image forState:UIControlStateNormal];
Помощники
#pragma mark - Helpers
UIImage *ACUTilingImageGray(CGFloat gray, CGFloat alpha)
{
return ACUTilingImage(alpha, ^(CGContextRef context) {
CGContextSetGrayFillColor(context, gray, alpha);
});
}
UIImage *ACUTilingImageRGB(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha)
{
return ACUTilingImage(alpha, ^(CGContextRef context) {
CGContextSetRGBFillColor(context, red, green, blue, alpha);
});
}
UIImage *ACUTilingImage(CGFloat alpha, void (^setFillColor)(CGContextRef context))
{
CGRect rect = CGRectMake(0, 0, 0.5, 0.5);
UIGraphicsBeginImageContextWithOptions(rect.size, alpha == 1, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
setFillColor(context);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Замечания: ACU
это префикс класса моей статической библиотеки Cocoa Touch под названием Acani Utilities, где AC для Acani, а U для Utilities.
Подкласс UIButton и добавьте проверяемые свойства для удобного использования (написано в Swift 3.0):
final class SelectableBackgroundButton: UIButton {
private struct Constants {
static let animationDuration: NSTimeInterval = 0.1
}
@IBInspectable
var animatedColorChange: Bool = true
@IBInspectable
var selectedBgColor: UIColor = UIColor.blackColor().colorWithAlphaComponent(0.2)
@IBInspectable
var normalBgColor: UIColor = UIColor.clearColor()
override var selected: Bool {
didSet {
if animatedColorChange {
UIView.animateWithDuration(Constants.animationDuration) {
self.backgroundColor = self.selected ? self.selectedBgColor : self.normalBgColor
}
} else {
self.backgroundColor = selected ? selectedBgColor : normalBgColor
}
}
}
override var highlighted: Bool {
didSet {
if animatedColorChange {
UIView.animateWithDuration(Constants.animationDuration) {
self.backgroundColor = self.highlighted ? self.selectedBgColor : self.normalBgColor
}
} else {
self.backgroundColor = highlighted ? selectedBgColor : normalBgColor
}
}
}
}
Вы можете создать подкласс UIButton и сделать хороший forState.
colourButton.h
#import <UIKit/UIKit.h>
@interface colourButton : UIButton
-(void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state;
@end
colourButton.m
#import "colourButton.h"
@implementation colourButton
{
NSMutableDictionary *colours;
}
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
// If colours does not exist
if(!colours)
{
colours = [NSMutableDictionary new]; // The dictionary is used to store the colour, the key is a text version of the ENUM
colours[[NSString stringWithFormat:@"%lu", UIControlStateNormal]] = (UIColor*)self.backgroundColor; // Store the original background colour
}
return self;
}
-(void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state
{
// If it is normal then set the standard background here
if(state & UIControlStateNormal)
{
[super setBackgroundColor:backgroundColor];
}
// Store the background colour for that state
colours[[NSString stringWithFormat:@"%lu", state]]= backgroundColor;
}
-(void)setHighlighted:(BOOL)highlighted
{
// Do original Highlight
[super setHighlighted:highlighted];
// Highlight with new colour OR replace with orignial
if (highlighted && colours[[NSString stringWithFormat:@"%lu", UIControlStateHighlighted]])
{
self.backgroundColor = colours[[NSString stringWithFormat:@"%lu", UIControlStateHighlighted]];
}
else
{
self.backgroundColor = colours[[NSString stringWithFormat:@"%lu", UIControlStateNormal]];
}
}
-(void)setSelected:(BOOL)selected
{
// Do original Selected
[super setSelected:selected];
// Select with new colour OR replace with orignial
if (selected && colours[[NSString stringWithFormat:@"%lu", UIControlStateSelected]])
{
self.backgroundColor = colours[[NSString stringWithFormat:@"%lu", UIControlStateSelected]];
}
else
{
self.backgroundColor = colours[[NSString stringWithFormat:@"%lu", UIControlStateNormal]];
}
}
@end
Примечания (это пример, я знаю, что есть проблемы, а вот некоторые)
Я использовал NSMutableDictionay для хранения UIColor для каждого состояния, я должен сделать неприятное преобразование текста для ключа, так как UIControlState не является хорошим прямым Int. Если это где вы можете начать массив с таким количеством объектов и использовать состояние в качестве индекса.
Из-за этого у многих возникают проблемы, например, с выбранной и отключенной кнопкой, требуется дополнительная логика.
Другая проблема - если вы пытаетесь установить несколько цветов одновременно, я не пробовал с кнопкой, но если вы можете сделать это, она может не работать
[btn setBackgroundColor:colour forState:UIControlStateSelected & UIControlStateHighlighted];
Я предположил, что это StoryBoard, нет init, initWithFrame, поэтому добавьте их, если они вам нужны.
Попробуйте это, если у вас есть изображение:
-(void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
или посмотреть, если showsTouchWhenHighlighted
тебе достаточно.
class CustomButton: UIButton {
override var isHighlighted: Bool {
didSet {
if (isHighlighted) {
alpha = 0.5
}
else {
alpha = 1
}
}
}
}
Чтобы решить эту проблему, я создал категорию для обработки backgroundColor
Штаты с UIButtons
:
ButtonBackgroundColor-IOS
Вы можете установить категорию в качестве модуля.
Легко использовать с Objective-C
@property (nonatomic, strong) UIButton *myButton;
...
[self.myButton bbc_backgroundColorNormal:[UIColor redColor]
backgroundColorSelected:[UIColor blueColor]];
Еще проще в использовании со Swift:
import ButtonBackgroundColor
...
let myButton:UIButton = UIButton(type:.Custom)
myButton.bbc_backgroundColorNormal(UIColor.redColor(), backgroundColorSelected: UIColor.blueColor())
Я рекомендую вам импортировать пакет с:
platform :ios, '8.0'
use_frameworks!
pod 'ButtonBackgroundColor', '~> 1.0'
Использование use_frameworks! в вашем Podfile облегчает использование ваших стручков со Swift и Objective-C.
ВАЖНЫЙ
Я также написал сообщение в блоге с дополнительной информацией.
Я открыл исходный код подкласса UIButton, STAButton, чтобы заполнить эту пробел в функциональности. Доступно по лицензии MIT. Работает для iOS 7+ (я не тестировал старые версии iOS).
Используйте https://github.com/swordray/UIButtonSetBackgroundColorForState
Добавить в Podfile, используя CocoaPods
pod "UIButtonSetBackgroundColorForState"
стриж
button.setBackgroundColor(.red, forState: .highlighted)
Objective-C
[button setBackgroundColor:[UIColor redColor] forState:UIControlStateHighlighted];
Вы можете легко изменить цвет фона выделенной/выбранной кнопки, просто используя
setBackgroundImage
метод на UIButton и использование изображения с помощью этого
UIImage(color:)
инициализатор, например:
btn.setBackgroundImage(UIImage(color: .black), for: .highlighted)
Примечание:
Если вы используете
cornerRadius
свойство для закругленных границ, вы должны установить
clipsToBounds
к
true
поэтому выбранный цвет фона зарезервирует значение радиуса угла.
Вот код в Swift для выбора состояния кнопки:
func imageWithColor(color:UIColor) -> UIImage {
let rect:CGRect = CGRectMake(0.0, 0.0, 1.0, 1.0)
UIGraphicsBeginImageContext(rect.size)
let context:CGContextRef = UIGraphicsGetCurrentContext()!
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, rect)
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
return image;
}
Пример:
self.button.setImage(self.imageWithColor(UIColor.blackColor()), forState: .Highlighted)
Оставьте это, и вы готовы идти:
* Proerty может быть установлен в IB, и если не выделен выделенный фон, фон не будет меняться при нажатии
private var highlightedBackgroundColors = [UIButton:UIColor]()
private var unhighlightedBackgroundColors = [UIButton:UIColor]()
extension UIButton {
@IBInspectable var highlightedBackgroundColor: UIColor? {
get {
return highlightedBackgroundColors[self]
}
set {
highlightedBackgroundColors[self] = newValue
}
}
override open var backgroundColor: UIColor? {
get {
return super.backgroundColor
}
set {
unhighlightedBackgroundColors[self] = newValue
super.backgroundColor = newValue
}
}
override open var isHighlighted: Bool {
get {
return super.isHighlighted
}
set {
if highlightedBackgroundColor != nil {
super.backgroundColor = newValue ? highlightedBackgroundColor : unhighlightedBackgroundColors[self]
}
super.isHighlighted = newValue
}
}
}
Ниже UIIImage
расширение будет генерировать объект изображения с указанным параметром цвета.
extension UIImage {
static func imageWithColor(tintColor: UIColor) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0)
tintColor.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}
Пример использования кнопки может быть применен для объекта кнопки как:
setupButton.setBackgroundImage(UIImage.imageWithColor(tintColor: UIColor(displayP3Red: 232/255, green: 130/255, blue: 121/255, alpha: 1.0)), for: UIControlState.highlighted)
setupButton.setBackgroundImage(UIImage.imageWithColor(tintColor: UIColor(displayP3Red: 255/255, green: 194/255, blue: 190/255, alpha: 1.0)), for: UIControlState.normal)
В Swift 5
Для тех, кто не хочет использовать цветной фон для победы над выбранным состоянием
Просто вы можете решить проблему, используя оператор #Selector & if, чтобы легко изменить цвета UIButton для каждого состояния индивидуально.
Например:
override func viewDidLoad() {
super.viewDidLoad()
self.myButtonOutlet.backgroundColor = UIColor.white //to reset the button color to its original color ( optionally )
}
@IBOutlet weak var myButtonOutlet: UIButton!{
didSet{ // Button selector and image here
self.myButtonOutlet.setImage(UIImage(systemName: ""), for: UIControl.State.normal)
self.myButtonOutlet.setImage(UIImage(systemName: "checkmark"), for: UIControl.State.selected)
self.myButtonOutlet.addTarget(self, action: #selector(tappedButton), for: UIControl.Event.touchUpInside)
}
}
@objc func tappedButton() { // Colors selection is here
if self.myButtonOutlet.isSelected == true {
self.myButtonOutlet.isSelected = false
self.myButtonOutlet.backgroundColor = UIColor.white
} else {
self.myButtonOutlet.isSelected = true
self.myButtonOutlet.backgroundColor = UIColor.black
self.myButtonOutlet.tintColor00 = UIColor.white
}
}