Sanırım bir UIButton'dan bahsediyorsunuz UIButtonTypeRoundedRect
? Bunun arka plan rengini değiştiremezsiniz. Arka plan rengini değiştirmeyi denediğinizde, düğmenin üzerine çizildiği rektin rengini değiştirmiş olursunuz (ki bu genellikle açıktır). Yani gitmenin iki yolu var. Ya UIButton'ı alt sınıflarsınız ve -drawRect:
yönteminin üzerine yazarsınız ya da farklı düğme durumları için görüntüler yaratırsınız (ki bu tamamen iyidir).
Arayüz Oluşturucu'da arka plan resimlerini ayarlarsanız, IB'nin düğmenin sahip olabileceği tüm durumlar için resim ayarlamayı desteklemediğini fark etmelisiniz, bu nedenle resimleri şu şekilde kodlamanızı öneririz:
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)];
Son satır, seçilen ve vurgulanan durum için bir görüntünün nasıl ayarlanacağını gösterir (IB'nin ayarlayamayacağı tek şey budur). Düğmenin seçili bir duruma ihtiyacı yoksa, seçilen görüntülere (satır 4 ve 6) ihtiyacınız yoktur.