2016-03-25 38 views
0

Sorunum, UIControlStateHighlighted'deki UIBarButtonItem başlık etiketinin tam rengini ayarlayamıyorum. UINavigationBar'ın, vurgulanan başlık etiketinin üstünde koyu renkli "renk bindirmesi" eklediğini ve bunun nasıl devre dışı bırakılacağını bilmiyorum. Ben görünüş üzerinden yapılandırılır başlık metni ile UIBarButtonItem varUIBarButtonItem'in başlık etiketinden nasıl kurtululur vurgulanır

, Normal için kesin renkler ihtiyaç ve devleti vurgulanan, bu yüzden yapılandırılmış UIBarButtonItems bu şekilde ettik: UINavigationBar için UIBarButtonItem ekleme

UIBarButtonItem *barButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]; 

NSDictionary * textAttributes = @{ 
    NSForegroundColorAttributeName : blueColor, 
}; 
[barButtonItemAppearance setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; 

NSDictionary * selectedTextAttributes = @{ 
    NSForegroundColorAttributeName : whiteColor 
}; 
[barButtonItemAppearance setTitleTextAttributes:selectedTextAttributes forState:UIControlStateHighlighted]; 

Kodu:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem *logoutButtonItem = [[UIBarButtonItem alloc] initWithTitle:title 
               style:UIBarButtonItemStylePlain 
               target:target 
               action:action]; 
    [self.navigationItem setRightBarButtonItem:logoutButtonItem];   
} 

ekli ekran bakınız. enter image description here

enter image description here

benim Vurgulanan çubuğu düğmesi sadece beyaz olmak istiyorum. UIBarButtonItem öğesinin customView özelliğine başlık olarak UIButton eklemeyi ve normal ve vurgulanan durumlar için UIButton'u yapılandırmayı denedim.

UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[customButton setTitle:title forState:UIControlStateNormal]; 
[customButton setTitleColor:blueColor forState:UIControlStateNormal]; 
[customButton setTitleColor:whiteColor forState:UIControlStateHighlighted]; 
[customButton sizeToFit]; 
[customButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:customButton]; 

Benim problem sabit, ama belki UIButton eklemeden, başka bir yol, daha iyi bir çözüm vardır: BU mükemmel şekilde çalışmaktadır i vurgulayarak sadece net beyaz renk görmüyorum?

cevap

0

uibarbutton nolu ürününüzünüzü eklemeden önce, normal ve belirtilen özelliklerin renkleri istediğiniz renkle birlikte ayarlayın.

+0

Normal ve vurgulanan durum için titleTextAttributes ekledim. Ama ben öğe vurgulandığında sceen ne olsun, bu renk daha koyu olur. –

+0

Ayrıca bir başlık rengi da ayarlamak zorunda –