2010-11-04 13 views
6

Tengo el siguiente en mi opinión se ha cargado en mi controlador de vista de tabla:UIButton en UIBarButtonItem no presentarse

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;  

Cuando ejecuto el programa, no muestra ninguna el botón rectángulo redondeado título o. Sin embargo, si cambio el tipo a UIButtonTypeInfoLight, se mostrará ... ¿cuál es el problema?

Respuesta

5

Intente establecer un marco apropiado para su change_view.

Cuando se utiliza el botón UIButtonTypeInfoLight tipo utiliza un cierto tamaño incorporado (probablemente dependía de icono utilizado para ello), la trama predeterminado UIButtonTypeRoundedRect tipo se aplica el cual debe ser CGRectZero rect.

+0

¿cómo se establece el marco de un botón? – aherlambang

+0

change_view.frame = CGRectMake (0,0, ancho, alto), con ancho y alto apropiados. Si usa diferentes cadenas para un título (por ejemplo, localizarlo), puede que necesite calcular el ancho dinámicamente ... – Vladimir

14

Prefiero el siguiente modo para establecer los límites del botón.

[button setTitle:@"Title" forState:UIControlStateNormal]; 
[button sizeToFit]; 
Cuestiones relacionadas