2013-06-16 6 views
2

У меня есть набор кнопок на контроллере представления, которые добавляются в .xib, и их свойства настраиваются программно.UIButton adjustsImageWhenHighlighted Property With Background Color

Цвет фона задается в коде следующим образом, а затем при его нажатии меняет цвет фона с помощью селекторного метода.

в методе configureButtons:

[btn addTarget:self action:@selector(changeButtonBackGroundColor:) forControlEvents:UIControlEventTouchDown]; 

, который называет следующие:

-(void) changeButtonBackGroundColor:(id) sender { 
    [sender setBackgroundColor:[UIColor colorWithRed: 199/255. green: 95/255. blue: 45/255. alpha:1.0]]; 
} 

Регулировка фона при прикосновении программно отлично работает, когда «Highlight Настройка изображения» свойство имеет значение YES, но он показывает белое свечение при касании, а также изменение цвета фона.

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

Есть ли способ изменить цвет фона UIButton, не показывая светящуюся светящуюся подсветку при касании?

ответ

0

Вы можете использовать фоновое изображение с определенным цветом. В этом случае вы можете легко использовать функцию – setBackgroundImage:forState:. Я думаю, что это сработает, даже если для showsTouchWhenHighlighted установлено значение НЕТ.

+0

Я вообще не использую изображения на кнопках. Я просто меняю цвет и меняю их на круглые кнопки программно. Из того, что я могу сказать, не кажется возможным избавиться от подсветки/свечения при касании, не избавляясь от возможности изменять цвет фона. – motionpotion

+0

@motionpotion Я предлагал вам использовать изображения. Вам просто нужно создать правильное цветное изображение и использовать его гораздо проще. – Adithya