He diseñado una vista con una barra de herramientas que aparece de forma modal en Interface Builder. Tengo un UIBarButtonItem que está en el lado izquierdo, que me gustaría que aparezca en el lado derecho de la barra de herramientas. ¿Cómo puedo hacer esto en IB o por código?¿Cómo colocar UIBarButtonItem en el lado derecho de una UIToolbar?
26
A
Respuesta
57
Así es como hacerlo en código si alguien viene a través de este post:
UIBarButtonItem *leftButton = [[[UIBarButtonItem alloc] initWithTitle:@"Item" style:UIBarButtonItemStyleBordered target:self action:@selector(btnItem1Pressed:)] autorelease];
UIBarButtonItem *flex = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil] autorelease];
UIBarButtonItem *rightButton = [[[UIBarButtonItem alloc] initWithTitle:@"Item" style:UIBarButtonItemStyleBordered target:self action:@selector(btnItem2Pressed:)] autorelease];
self.toolbarItems = [NSArray arrayWithObjects: leftButton, flex, rightButton, nil];
29
Inserta un elemento cuyo identificador sea "espacio flexible".
-1
Si usted puede conseguir lejos con esto no ser un UIBarButtonItem (por ejemplo, un botón de información), lo que hago es cambiar la capa del botón para estar siempre delante de la barra de herramientas. De esta manera, cuando arrastro el botón sobre la barra de herramientas en IB, no lo absorbe automáticamente y hacia el lado izquierdo.
8
Código Swift:
func addDoneButton() -> UIToolbar {
let toolbar = UIToolbar()
let flexButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: Selector("donePressed"))
toolbar.setItems([flexButton, doneButton], animated: true)
toolbar.sizeToFit()
return toolbar
}
27
- un elemento de la derecha como esto
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil];
self.toolbarItems = [NSArray arrayWithObjects: flexible, item1, nil];
-dos elementos izquierda y derecha como éste
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2” style:UIBarButtonItemStylePlain target:self action:nil];
self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, nil];
artículos -tres como este
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2” style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithTitle:@"item3” style:UIBarButtonItemStylePlain target:self action:nil];
self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, flexible, item3, nil];
-cuatro este tipo de elementos
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2” style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithTitle:@"item3” style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item4 = [[UIBarButtonItem alloc] initWithTitle:@"item4” style:UIBarButtonItemStylePlain target:self action:nil];
self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, item3, flexible, item4, nil];
lo que cuando se desea agregar un espacio que hay que añadir el botón flexible de la barra.
0
3.x Swift o superior:
internal var textFieldHandlerToolBar: UIToolbar = {
let tb = UIToolbar.init(frame: CGRect.init(origin: .zero, size: CGSize.init(width: UIScreen.screenSize().width, height: 44.0)))
let flexibleButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let doneBarButton = UIBarButtonItem.init(title: "Done", style: UIBarButtonItemStyle.done, target: self, action: #selector(actionDonePickerSelection))
tb.setItems([flexibleButton, doneBarButton], animated: false)
return tb
}()
Salida:
Cuestiones relacionadas
- 1. UIToolbar no mostrar UIBarButtonItem
- 2. ¿Cómo agregar un botón en el lado derecho de la barra de herramientas?
- 3. Cómo agregar UIBarButtonItem en UIToolBar en el código
- 4. ¿Cómo colocar una barra deslizadora div en el lado izquierdo?
- 5. Cómo determinar la posición de UIBarButtonItem en UIToolbar?
- 6. Botón expansor en el lado derecho: ¿cómo hacerlo?
- 7. Cómo colocar un div en el lado derecho con la posición absoluta
- 8. Alineación de elementos de UIToolBar
- 9. Cómo colocar las pestañas WPF Tab Control en el lado
- 10. iOS - usando UISearchDisplayController con UISearchBar que es UIBarButtonItem en UIToolbar
- 11. Abrir firebug en el lado derecho
- 12. UISegmentedControl Color en una UIToolbar
- 13. ¿Cómo agrego un UIBarButtonItem a una UIToolbar con texto y una imagen en él?
- 14. Cómo agregar iconos en el lado derecho de NSMenuItem
- 15. UIToolBar con alfa reducida, quiere que UIBarButtonItem tenga alpha 1
- 16. opción de Android RadioButton en el lado derecho del texto
- 17. Pestañas en el lado derecho e izquierdo de TabControl C#
- 18. UIToolBar - desactivar botones
- 19. Agregar UIToolbar con dos UIBarButtonItem a un UINavigationBar: pobre UIToolbar y qué pasa con el iPhone 4
- 20. ¿Cómo agregar una UIToolbar a UITableViewController programmatically?
- 21. Highcharts tooltip siempre en el lado derecho del cursor
- 22. Cómo activar efecto de hightlight en UIBarButtonItem
- 23. ¿Cómo ocultar la flecha en el lado derecho de una barra de herramientas?
- 24. texto en el lado izquierdo y derecho del elemento
- 25. Añadir espaciamiento entre UIToolbar
- 26. vista web mostrando barra blanca en el lado derecho
- 27. ¿Cómo se ajusta el marco o la alineación vertical de un UIBarButtonItem contenido por una instancia de UIToolbar?
- 28. Agregando un botón derecho "hecho" (UIBarButtonItem) a un UINavigationController
- 29. Cómo matizar el color de fondo de UIBarButtonItem?
- 30. UISearchBar dentro de una UIToolbar no mostrará el botón cancelar
Esto suena como una solución mejor que la mía! – bpapa
¡Funciona como un encanto! Gran solución –
Cuando hago esto, el botón no aparece en la pantalla. –