4 Stimmen

Wie kann ich alle UIButton-Schriftarten in eine eigene Schriftart ändern?

Gibt es eine Möglichkeit, dies zu tun? Ich möchte eine benutzerdefinierte Schriftart haben, die ich heruntergeladen habe, um auf jeder UIButton zu zeigen.

7voto

Deepak Danduprolu Punkte 44474

Wenn Sie IBOutletCollection dann sollte dies direkt sein.

@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;

Verbinden Sie die Schaltflächen mit dieser Steckdosensammlung und ändern Sie später die Schriftart in einem einzigen Schritt mit,

[self setValue:[UIFont fontWithName:@"Helvetica" size:30] forKeyPath:@"buttons.font"];

5voto

Cyprian Punkte 9323

Eine Möglichkeit ist, die gewünschte Schriftart in der Unterklasse UIButton einzurichten und die Unterklasse anstelle von UIButton zu verwenden.

Editar

//
//  MyUIButton.h
//

@interface MyUIButton : UIButton {

}
+ (id)buttonWithType:(UIButtonType)buttonType;
@end

//
//  MyUIButton.m
//

#import "MyUIButton.h"

@implementation MyUIButton

+ (id)buttonWithType:(UIButtonType)buttonType{
   UIButton *button = [UIButton buttonWithType:buttonType];
   [[button titleLabel] setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12]];
   return button;
}

@end

Then just use it like this:

[MyUIButton buttonWithType:UIButtonTypeCustom]

Die andere Sache, die Sie versuchen können, ist das Schreiben einer Kategorie für UIButton und überschreiben es dort.

Bearbeiten2

    //
    //  UIButton+Font.h
    //

#import <Foundation/Foundation.h>

@interface UIButton (DefaultFontExtension)
+ (id)buttonWithType:(UIButtonType)buttonType;
@end

    //
    //  UIButton+Font.m
    //

#import "UIButton+Font.h"

@implementation UIButton (DefaultFontExtension)

+ (id)buttonWithType:(UIButtonType)buttonType{
       UIButton *button = [UIButton buttonWithType:buttonType];
       [[button titleLabel] setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12]];
       return button;
    }

@end

Jetzt importieren Sie einfach "UIButton+Font.h", um die Standardeinstellungen von UIButton zu überschreiben.

3voto

Trevor Punkte 10791

https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html#//apple_ref/doc/uid/TP40006815

button.titleLabel.font = [UIFont fontWithName:FONT_NAME size:FONT_SIZE];

Die Dokumentation von Apple ist recht gut. Versuchen Sie, zuerst dort nachzuschlagen, dann in SO zu suchen, dann in Google zu suchen, dann eine Frage zu schreiben :)

Edita: Nun, am einfachsten ist es, wenn Sie alle fontWithName Parameter mit einer Konstante, z. B. einem Makro.

#define BUTTON_FONT_NAME @"Helevetica"

Wenn Sie das nicht getan haben, müssen Sie sie alle ersetzen.

0voto

Patrick Perini Punkte 22351

Eine mögliche Option ist die Verwendung einer Unterklasse und die Bearbeitung von init.

//MYButton.m
-(id) initWithTitle: (NSString *)title {
    self.titleLabel = title;
    self.titleLabel.font = [UIFont fontWithName: FONT_NAME size FONT_SIZE];
}

Dann machen Sie einfach alle Ihre UIButtons zu MYButtons.

0voto

Nithin M Keloth Punkte 1585
UIButton *NameBtn=[UIButton buttonWithType:UIButtonTypeCustom];
    NameBtn=[[UIButton alloc]init];
    [NameBtn setBackgroundColor:[UIColor clearColor]];
    [NameBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    NSString *textb=[[self.searchList objectAtIndex:indexPath.row] objectForKey:@"name"];
    CGSize constraintb = CGSizeMake(310 ,10);
    CGSize sizeb = [textb sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:constraintb lineBreakMode:UILineBreakModeWordWrap];
    [NameBtn setTitle:textb forState:UIControlStateNormal];
    NameBtn.font = [UIFont fontWithName:@"Helvetica-Bold" size: 12.0];
    NameBtn.frame = CGRectMake(85, 12, MAX(sizeb.width ,3.0f),12);
    [NameBtn addTarget:self action:@selector(buttonClicked:)  forControlEvents:UIControlEventTouchUpInside];
    NameBtn.tag=indexPath.row;

    [cell addSubview:NameBtn];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X