[Ios] Cambia il carattere di un UIBarButtonItem


Answers

Per essere precisi, questo può essere fatto come di seguito

[buttonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIFont fontWithName:@"Helvetica-Bold" size:26.0], NSFontAttributeName,
    [UIColor greenColor], NSForegroundColorAttributeName,
    nil] 
                          forState:UIControlStateNormal];

O con la sintassi letterale dell'oggetto:

[buttonItem setTitleTextAttributes:@{
     NSFontAttributeName: [UIFont fontWithName:@"Helvetica-Bold" size:26.0],
     NSForegroundColorAttributeName: [UIColor greenColor]
} forState:UIControlStateNormal];

Per comodità, ecco l'implementazione di Swift:

buttonItem.setTitleTextAttributes([
        NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 26.0)!,
        NSAttributedStringKey.foregroundColor: UIColor.green],
    for: .normal)
Question

Ho un UIBarButtonItem nel mio UIToolbar intitolato Fatto . Ora voglio cambiare il carattere da predefinito a "Trebuchet MS" con Grassetto. Come lo posso fare?




rapido 3

barButtonName.setTitleTextAttributes( [NSFontAttributeName : UIFont.systemFont(ofSize: 18.0),NSForegroundColorAttributeName : UIColor.white], for: .normal) 



Puoi creare un UIView personalizzato a livello di UIView :

UIView *buttonItemView = [[UIView alloc] initWithFrame:buttonFrame];

Quindi aggiungi immagini, etichette o qualsiasi altra cosa desideri alla tua vista personalizzata:

[buttonItemView addSubview:customImage];

[buttonItemView addSubview:customLabel];

...

Ora mettilo nel tuo UIBarButtomItem .

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:buttonItemView];

E infine aggiungi barButtonItem alla barra di navigazione.




Swift3

  buttonName.setAttributedTitle([
        NSFontAttributeName : UIFont.systemFontOfSize(18.0),
        NSForegroundColorAttributeName : UIColor.red,NSBackgroundColorAttributeName:UIColor.black],
                                     forState: UIControlState.Normal)

veloce

   barbutton.setTitleTextAttributes([
        NSFontAttributeName : UIFont.systemFontOfSize(18.0),
        NSForegroundColorAttributeName : UIColor.redColor(),NSBackgroundColorAttributeName:UIColor.blackColor()],
        forState: UIControlState.Normal)

Objective-C

     [ barbutton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:@"Helvetica-Bold" size:20.0], NSFontAttributeName,
        [UIColor redColor], NSForegroundColorAttributeName,[UIColor blackColor],NSBackgroundColorAttributeName,
        nil]
        forState:UIControlStateNormal];



In Swift lo faresti come segue:

backButtonItem.setTitleTextAttributes([
        NSFontAttributeName : UIFont(name: "Helvetica-Bold", size: 26)!,
        NSForegroundColorAttributeName : UIColor.blackColor()],
    forState: UIControlState.Normal)



UIBarButton non ha proprietà correlate a cambiare il carattere. Ma puoi creare un pulsante con un carattere personalizzato e aggiungerlo in UIBarButton. Potrebbe essere risolto il tuo problema