Estoy intentando agregar una etiqueta a mi barra de herramientas. El botón funciona muy bien, sin embargo, cuando agrego el objeto de etiqueta, se bloquea. ¿Algunas ideas?
UIBarButtonItem *setDateRangeButton = [[UIBarButtonItem alloc] initWithTitle:@"Set date range"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(setDateRangeClicked:)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 20, 20)];
label.text = @"test";
[toolbar setItems:[NSArray arrayWithObjects:setDateRangeButton,label, nil]];
// Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];
// Reload the table view
[self.tableView reloadData];
ios
iphone
uibarbuttonitem
usuario8359
fuente
fuente

Para aquellos que usan Interface Builder para diseñar su
UIToolBar, también es posible hacerlo usando solo Interface Builder.Para agregar un
UILabelaUIToolBar, debe agregar unUIViewobjeto genérico a suUIToolBaren IB arrastrando un nuevoUIViewobjeto sobre suUIToolBar.IBcreará automáticamente un archivoUIBarButtonItemque se inicializará con su archivo personalizadoUIView. A continuación añadimos unaUILabela laUIViewy editar laUILabelgráfica para que coincida con su estilo preferido. A continuación, puede configurar visualmente sus espaciadores fijos y / o variables como desee para colocarlosUILabelcorrectamente.También debe establecer el fondo de
UILabely deUIViewparaclearColorque seUIToolBarmuestre correctamente debajo deUILabel.fuente
Encontré la respuesta de answerBot muy útil, pero creo que encontré una forma aún más fácil, en Interface Builder:
conecte este BarButtonItem a una propiedad en su clase (esto está en Swift, pero sería muy similar en Obj-C):
agregue otra propiedad para la etiqueta en sí:
en viewDidLoad, agregue el siguiente código para establecer las propiedades de su etiqueta y agréguelo como customView de su BarButtonItem
Para actualizar el
UILabeltexto:Resultado:
Tienes que llamar
lastUpdateLabel.sizetoFit()cada vez que actualices el texto de la etiqueta.fuente
UILabel* label = [[UILabel alloc] init]; label.text = @"Hello"; label.font = [UIFont systemFontOfSize:16]; [label sizeToFit]; self.barItem.customView = label;Una de las cosas para las que estoy usando este truco es para crear una instancia
UIActivityIndicatorViewsobre elUIToolBar, algo que de otra manera no sería posible. Por ejemplo, aquí tengo aUIToolBarcon 2UIBarButtonItem, aFlexibleSpaceBarButtonItem, y luego otroUIBarButtonItem. Quiero insertar unUIActivityIndicatorViewenUIToolBarentre el espacio flexible y el botón final (de la derecha). Entonces en miRootViewControllerhago lo siguiente,fuente
Detalles
Muestra completa
Resultado
fuente
Similar al constructor de interfaces usado por Matt RI. Pero quería tener 1
UIWebViewadentro en su lugar para poder tener un texto en negrita y otro texto no (como la aplicación de correo). EntoncesIBOutlethtmlpara tener un fondo transparente para que la barra de herramientas brille a travésCódigo:
fuente
Si desea agregar una vista a la vista de la barra de herramientas, puede intentar esto:
fuente
Prueba esto:
Nota:
self.barItemes unUIBarButtonItemagregado de la biblioteca de objetos y se coloca entre dos espacios flexibles.otra forma es eliminar la
[self.barItem setCustom:view]línea y cambiar los parámetros dellabel(ancho) para que llene toda la barra de herramientas y establecer la alineación en el medio y la fuente usted mismo en el código,fuente