Я припускаю, що ти говориш про UIButton UIButtonTypeRoundedRect
? Ви не можете змінити колір тла. Коли ви намагаєтесь змінити колір тла, ви швидше змінюєте колір прямої кнопки, на яку натягується кнопка (що зазвичай зрозуміло). Тож є два шляхи. Або підклас UIButton і перезапис його -drawRect:
методу, або ви створюєте зображення для різних станів кнопок (що цілком чудово робити).
Якщо ви встановите фонові зображення в Interface Builder, ви повинні помітити, що IB не підтримує налаштування зображень для всіх станів, які може мати кнопка, тому я рекомендую встановити зображення у такому коді:
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[myButton setBackgroundImage:[UIImage imageNamed:@"disabled.png"] forState:UIControlStateDisabled];
[myButton setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
[myButton setBackgroundImage:[UIImage imageNamed:@"higligted.png"] forState:UIControlStateHighlighted];
[myButton setBackgroundImage:[UIImage imageNamed:@"highlighted+selected.png"] forState:(UIControlStateHighlighted | UIControlStateSelected)];
Останній рядок показує, як встановити зображення для вибраного та виділеного стану (це один ІБ не можна встановити). Вибрані зображення вам не потрібні (рядки 4 та 6), якщо кнопка не потребує вибраного стану.