No puedo encontrar la manera de establecer el tamaño de fuente del título en un UIBarButtonItem personalizado. La única forma en que puedo pensar en evitar esto es establecerlo como una imagen que me gustaría evitar. ¿Cualquier otra sugerencia?¿Cómo se establece el tamaño de fuente en un UIBarButtonItem?
Respuesta
Crea un UILabel y usa -initWithCustomView:
.
Como ejemplo concreto de lo que KennyTM sugiere, se crea el UIBarButtonItem con algo como lo siguiente (en código):
UILabel *txtLabel = [[UILabel alloc] initWithFrame:rect];
txtLabel.backgroundColor = [UIColor clearColor];
txtLabel.textColor = [UIColor lightGrayColor];
txtLabel.text = @"This is a custom label";
UIBarButtonItem *btnText = [[[UIBarButtonItem alloc] initWithCustomView:txtLabel] autorelease];
A continuación, puede agregarlo como texto centrado en un UIToolbar (por ejemplo) con lo siguiente:
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:rect];
toolBar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *flexSpace1 = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];
UIBarButtonItem *flexSpace2 = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];
[toolBar setItems:[NSArray arrayWithItems:flexSpace1, btnText, flexSpace2, nil]];
(por supuesto, para obtener el formato correcto, el rect
utiliza para inicializar txtLabel
y toolBar
deben ser los tamaños adecuados .... pero eso es otro ejercicio!)
Puede hacerlo del tamaño correcto usando [txtLabel sizeToFit]. Como nota al margen, no estoy seguro de si este método conservará el fondo de la cápsula azul como elemento de botón, por lo que es posible que tenga que usar algunos gráficos personalizados con él. Pero es la mejor opción ya que no puede establecer el tamaño de fuente de un elemento de botón de barra si lo inicializa con un título. – axiixc
También debe establecer el tamaño de fotograma de la etiqueta. En mi caso, no se muestran elementos porque se inicializaron con ancho y alto de 0. – sprinter252
De una manera fácil, simplemente:
Objective-C:
NSUInteger fontSize = 20;
UIFont *font = [UIFont boldSystemFontOfSize:fontSize];
NSDictionary *attributes = @{NSFontAttributeName: font};
UIBarButtonItem *item = [[UIBarButtonItem alloc] init];
[item setTitle:@"Some Text"];
[item setTitleTextAttributes:attributes forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = item;
Swift:
let fontSize:CGFloat = 20;
let font:UIFont = UIFont.boldSystemFont(ofSize: fontSize);
let attributes:[String : Any] = [NSFontAttributeName: font];
let item = UIBarButtonItem.init();
item.title = "Some Text";
item.setTitleTextAttributes(attributes, for: UIControlState.normal);
self.navigationItem.rightBarButtonItem = item;
También puede usar el proxy 'UIAppearance' para' setTitleTextAttributes'. – livingtech
Nota secundaria: el valor de la clave UITextAttributeFont ha quedado obsoleto en iOS 7, puede usar NSFontAttributeName en su lugar. –
genial, gracias .. !!! – tesmojones
[[UIBarButtonItem appearance]setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
[UIFont fontWithName:@"FONT-NAME" size:21.0], NSFontAttributeName, nil]
forState:UIControlStateNormal];
- 1. ¿Cómo se establece el tamaño del contenido de un UIPopoverController?
- 2. Cómo cambiar el tamaño de imagen UIBarButtonItem
- 3. Cambiar la fuente de un UIBarButtonItem
- 4. se establece el atributo tamaño de un Ember.TextField
- 5. GTKSharp, Pango, establece la extravagancia del tamaño de fuente
- 6. ¿Cómo se cambia el tamaño de fuente y el color de fuente de un archivo Java?
- 7. ¿Cómo se establece el tamaño del marco UIScrollView programáticamente?
- 8. Cómo evitar que UIBarButtonItem con atributos personalizados cambie de tamaño
- 9. ¿Cómo se establece el tamaño de la pestaña en un JEditorPane?
- 10. Cómo cambiar el tamaño de fuente en un diagrama matplotlib
- 11. Cómo cambiar un UIBarButtonItem en un UINavigationBar
- 12. ¿Cómo se establece el texto en un NSTextField?
- 13. ¿Cómo se hace una animación de UIBarButtonItem?
- 14. ¿Cómo puedo obtener el tamaño de fuente y el nombre de la fuente de un UILabel?
- 15. establecer el tamaño de fuente en jquery
- 16. ¿Cómo cambiar tamaño de fuente en direct.label?
- 17. Cómo cambiar el tamaño de fuente de tabhost en android
- 18. ¿Cómo se establece el foco de un elemento textarea TinyMCE?
- 19. ¿Cómo se establece el directorio actual de un proceso depurado?
- 20. ¿Cómo puedo ocultar un UIBarButtonItem?
- 21. Cambiar el ancho de un UIBarButtonItem
- 22. Cómo cambiar el tamaño de la fuente en EditText
- 23. ¿Cómo cambiar el tamaño de la fuente en jqGrid?
- 24. Cambiar el tamaño de un UIBarButtonItem cuando el título es demasiado ancho
- 25. cómo configurar el tamaño de fuente clave en gnuplot?
- 26. Cómo aumentar el tamaño de fuente en javascript alert()
- 27. cambiar el ancho de un UIBarButtonItem en un UINavigationBar
- 28. ¿Cómo cambiar el tamaño de fuente al imprimir en android?
- 29. ¿Cómo se establece el encabezado para JTable?
- 30. ¿Cambiar el tamaño de la fuente macvim?
Aquí hay una pregunta similar. http://stackoverflow.com/questions/5421121/change-font-size-via-uibarbuttonitem-in-uitextview-works-just-once – acecapades