2015-07-21 6 views
2

У меня есть UIButton с белым изображением стрелки.Быстрое изменение цвета фона кнопки и цвета изображения при нажатии

Что я хочу сделать, это изменить цвет фона кнопок и сохранить изображение белым, пока кнопка нажата.

Я попытался это:

@IBAction func backButtonDidTouch(sender: AnyObject) { 

     backButton.backgroundColor = UIColor.blueColor() 

    } 

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

Благодаря

+0

Как вы можете видеть цвет фона, если кнопка покрыта изображением? –

+0

В раскадровке я установил изображение на изображение, а не фон –

ответ

3

вы можете изменить цвет фона на UIButton

сначала вы должны создать класс Util.

class Color { 
    class func imageWithColor(color: UIColor, size: CGSize = CGSizeMake(60, 60)) -> UIImage { 
     var rect = CGRectMake(0, 0, size.width, size.height) 
     UIGraphicsBeginImageContext(rect.size) 
     var context = UIGraphicsGetCurrentContext() 

     CGContextSetFillColorWithColor(context, color.CGColor); 
     CGContextFillRect(context, rect); 

     var image = UIGraphicsGetImageFromCurrentImageContext() 

     UIGraphicsEndImageContext(); 

     return image; 
    } 
} 

Следующая Вы можете установить цвет подсветки для UIButton

типа UIButton должен быть 'на заказ'

func viewDidLoad() { 
    backButton.setBackgroundImageForState(Color.imageWithColor(UIColor.blueColor()), forState: .Highlighted)) 
} 
+0

Хорошее решение, спасибо :) – LinusGeffarth

0

Используйте setBackgroundImage(_:forState:) для изменения фона для выбранного состояния

+0

Не измените ли это изображение, а не цвет фона? –

+0

имеют два изображения с цветами diff. –

+0

UIButton есть изображение и backgroundImage, вы меняете backgroundImage для состояния Только выбранные –

0

При создании метода действия в интерфейсе строителя, вы можете выбрать тип события. Он находится в том же диалоговом окне, где вы выбираете имя своего метода.

Вы выбрали по умолчанию Touch Up Inside.

Выберите мероприятие Touch Down вместо этого.

Смежные вопросы