iphone uibarbuttonitem font-size

iphone - ¿Cómo se configura el tamaño de fuente en un UIBarButtonItem?



font-size (4)

No puedo encontrar una 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?


Como un ejemplo concreto de lo que KennyTM sugiere, usted crea el UIBarButtonItem con algo como lo siguiente (en el 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];

Luego, puede agregarlo como texto centrado en una 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 utilizado para inicializar txtLabel y toolBar debe tener los tamaños adecuados ... ¡pero ese es otro ejercicio!)


Cree un UILabel y use -initWithCustomView:


De una manera fácil, simplemente:

C objetivo:

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;

Rápido:

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;


[[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];