2010-11-04 17 views
6

Ho il seguente, a mio avviso è stato caricato sul mio controller della vista tabella:UIButton in UIBarButtonItem non presentandosi

UIButton *change_view = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[change_view setTitle:@"List" forState:UIControlStateNormal]; 
[change_view addTarget:self action:@selector(toggleView:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView: change_view];  
self.navigationItem.rightBarButtonItem = button;  

Quando eseguo il programma, non mostra alcun titolo o il pulsante rettangolo arrotondato. Tuttavia, se cambio il tipo in UIButtonTypeInfoLight, verrà visualizzato ... quindi qual è il problema?

risposta

5

Provare a impostare una cornice appropriata sul proprio change_view.

Quando si utilizza il pulsante UIButtonTypeInfoLight tipo utilizza alcune dimensioni built-in (probabilmente dipendeva icona utilizzata per esso), con UIButtonTypeRoundedRect tipo di frame predefinito viene applicato che deve essere CGRectZero rett.

+0

come si imposta la cornice di un pulsante? – aherlambang

+0

change_view.frame = CGRectMake (0,0, larghezza, altezza), con larghezza e altezza appropriate. Se utilizzi stringhe diverse per un titolo (ad esempio localizzandolo) potresti dover calcolare la larghezza in modo dinamico ... – Vladimir

14

Preferirei il modo in basso per impostare i limiti del pulsante.

[button setTitle:@"Title" forState:UIControlStateNormal]; 
[button sizeToFit]; 
Problemi correlati