2012-10-10 15 views
9

Düzenli UIButtons'u özelleştirmek için aşağıdaki kodu kullanarak UIBarButtonItems'i ve metin alanlarındaki temiz düğmeleri de etkiler.UIBarButtonItems'i etkilemeden UIButton görünümü nasıl ayarlanır?

[[UIButton appearance] setBackgroundImage:greenButtonImage forState:UIControlStateNormal]; 

Ben değil hepsi, sadece düzenli yuvarlak rect düğmeleri de ikincisi öğelerini özelleştirme isteyen yok. Ben viewWhenContainedIn kullanarak fark: UIBarButtonItems ve UITextField için özel bir görünüm ayarlamak için kullanılabilir, ancak bu düğmeler standart kalmasını diliyorum. Alt sınıflandırma, bu kadar basit bir görev için gerekli olmaması gerektiği için bir seçenek değildir.

Benzer bir soru var, ancak bu sorunu ele almıyor. Daha önce kullandım Why does -[[UIButton appearance] setBackgroundImage] affect the initial appearance of UIBarItem objects and how do you correct it?

+1

UITextField sorununu, bunları açık bir arka plan görüntüsüne özel olarak ayarlayarak düzelttim. Yine de hoş bir çözüm değil. –

+0

UIBarButtonItems'inizi nasıl başlatıyorsunuz? UIButton nesnesi olmak için "customView" özelliğini mi ayarlıyorsunuz? Bir UIBarButtonItem'i nasıl oluşturduğunuza ilişkin örnek kod sağlayabiliyorsanız, yardımcı olabileceğime eminim ... Uygulamalarda görünüm proxy'leri ve çubuk düğmeleri/UIButtons ile birçok özelleştirme yapıyorum ve bu sorunları yaşamadım. – DiscDev

cevap

2

Bir çözüm için nil UINavigationBar içinde bulunan UIButtons için "backgroundImage" mülkiyet dışarı:

[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundImage:nil forState:UIControlStateNormal]; 

Bu dokunmadan, diğer durumlarda UIButtons özelleştirmek için izin vermelidir UINavigationBar'daki bir UIBarButtonItem içindekiler.