Можно ли изменить цвет фона UIButtons? - PullRequest
105 голосов
/ 11 мая 2010

Это меня поставило в тупик.

Можно ли вообще изменить цвет фона кнопки UIButton в Какао для iPhone. Я попытался установить цвет фона, но он только меняет углы. setBackgroundColor: кажется единственным методом, доступным для таких вещей.

[random setBackgroundColor:[UIColor blueColor]];
[random.titleLabel setBackgroundColor:[UIColor blueColor]];

Ответы [ 16 ]

1 голос
/ 10 ноября 2015

Я знаю, что об этом спрашивали давно, и теперь есть новая UIButtonTypeSystem. Но новые вопросы помечаются как дубликаты этого вопроса, поэтому вот мой новый ответ в контексте системной кнопки iOS 7, используйте свойство .tintColor.

let button = UIButton(type: .System)
button.setTitle("My Button", forState: .Normal)
button.tintColor = .redColor()
1 голос
/ 30 декабря 2013

Это не так элегантно, как подкласс UIButton, однако, если вы просто хотите что-то быстрое - я создал пользовательскую кнопку, затем изображение размером 1 на 1 пиксель с цветом, который я бы хотел, чтобы кнопка была, и установить фон кнопки для этого изображения для выделенного состояния - работает для моих нужд.

1 голос
/ 15 июня 2012

Для профессиональных и приятных на вид кнопок, вы можете проверить компонент пользовательских кнопок . Вы можете использовать его непосредственно в своих представлениях и таблицах или изменить исходный код, чтобы он соответствовал вашим потребностям. Надеюсь, это поможет.

1 голос
/ 14 октября 2011

добавьте вторую цель для UIButton для UIControlEventTouched и измените цвет фона UIButton. Затем измените его обратно в цель UIControlEventTouchUpInside;

0 голосов
/ 09 июня 2017

Свифт 3:

        static func imageFromColor(color: UIColor, width: CGFloat, height: CGFloat) -> UIImage {
            let rect = CGRect(x: 0, y: 0, width: width, height: height)
            UIGraphicsBeginImageContext(rect.size)
            let context = UIGraphicsGetCurrentContext()!
            context.setFillColor(color.cgColor)
            context.fill(rect)
            let img = UIGraphicsGetImageFromCurrentImageContext()!
            UIGraphicsEndImageContext()
            return img
        }

        let button = UIButton(type: .system)
        let image = imageFromColor(color: .red, width: 
        button.frame.size.width, height: button.frame.size.height)
        button.setBackgroundImage(image, for: .normal)
0 голосов
/ 30 марта 2016

[myButton setBackgroundColor:[UIColor blueColor]]; [myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

Можно изменить таким образом или перейти на раскадровку и изменить фон для опций справа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...