UILabel - настройка шрифта - программный шрифт в iPhone - PullRequest
28 голосов
/ 20 августа 2009

В моем приложении указан следующий код.

tmp=[[UILabel alloc] initWithFrame:label1Frame];
tmp.tag=1;
tmp.textColor=[UIColor blackColor];
[tmp setFont:[UIFont fontWithName:@"American Typewriter" size:18]];
tmp.backgroundColor=[UIColor clearColor];
[cell.contentView addSubview:tmp];
[tmp release];

Теперь мне нужно знать,

======> как установить "Typeface = bold" через код?

Ответы [ 6 ]

36 голосов
/ 20 августа 2009

Вам нужно будет использовать имя шрифта bold в семье. Чтобы узнать, существует ли bold версия американской пишущей машинки, попробуйте вывести

[UIFont fontNamesForFamilyName:@"AmericanTypewriter"] 

к консоли.

В этом случае вы должны использовать "AmericanTypewriter-Bold".

[UIFont fontNamesForFamilyName:@"AmericanTypewriter-Bold"] 
20 голосов
/ 03 сентября 2011

Как насчет использования свойства setter:

// Create a string  
NSString *text = @"You are getting sleepy.";

// Get a font to draw it in  
UIFont *font = [UIFont boldSystemFontOfSize:28];

// Draw the string  
[text drawInRect:(CGRect)
withFont:font];
17 голосов
/ 15 ноября 2012

Just NSLog Шрифт, который вы хотите получить:

NSLog(@" %@", [UIFont fontNamesForFamilyName:@"American Typewriter"]);

И вы получите массив:

(
    "AmericanTypewriter-CondensedLight",
    "AmericanTypewriter-Light",
    "AmericanTypewriter-Bold",
    AmericanTypewriter,
    "AmericanTypewriter-CondensedBold",
    "AmericanTypewriter-Condensed"
)

Используйте все, что вам нужно в коде:

UILabel * loading = [[UILabel alloc] initWithFrame:CGRectMake(350, 402, 150, 25)];
    [loading setFont:[UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0]];
    [loading setTextColor:[UIColor whiteColor]];
    [loading setBackgroundColor:[UIColor clearColor]];
    [loading setText:@"Loading ..."];
    [self.view addSubview:loading];
2 голосов
/ 12 февраля 2016

Вы можете получить все поддерживаемые iOS названия шрифтов на этом сайте iOSfonts . Сделайте предварительный просмотр вашей точной строки, чтобы найти лучший шрифт и используйте его, как указано в ответах выше

UILabel * myLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 400, 150, 50)];
    [loading setFont:[UIFont fontWithName:@"Avenir-Black" size:12.0]];
    [loading setTextColor:[UIColor redColor]];
    [loading setBackgroundColor:[UIColor clearColor]];
    [loading setText:@"My Label Title"];
    [self.view myLabel];
1 голос
/ 07 января 2014

Как писал @devinfoley, вы должны добавить -Bold к fontName, который вы используете. Для меня это не работает с fontNamesForFamilyName, вместо этого я использую fontWithName:size. Возможно, это сработает, если вы создадите UILabel программно. В моем случае я просто устанавливаю font внутри расширения моего UILabel в awakeFromNib и устанавливаю это расширение как class в Identity Inspector для моего конкретного UILabel. С self.font.pointSize вы можете установить fontSize внутри Interface Builder и справиться с этим лучше, если у вас будет больше элементов пользовательского интерфейса.

- (void)awakeFromNib{

    [super awakeFromNib];
    [self setAdjustsFontSizeToFitWidth:YES];
    [self setFont:[UIFont fontWithName:@"Font-Bold" size:self.font.pointSize]];
}

Если ваш font не работает, вы должны напечатать все fonts семейства, чтобы вы могли увидеть, правильно ли вы написали fontName. Таким образом, вы также можете проверить, доступен ли шрифт bold, если он не напечатан, у вас нет этой опции.

NSLog (@"Available Fonts: %@", [UIFont fontNamesForFamilyName:@"Your Font"]);

Подробнее font Материал: https://stackoverflow.com/a/8529661/1141395

0 голосов
/ 05 декабря 2016

Swift update

Если вы уже добавили шрифт в приложение (как объяснено здесь ), вы можете использовать функцию Swift extension, например, с UILabel и шрифтом Roboto:

extension UILabel {

    func setFont(style: String, size: Int){
        self.font = UIFont(name: style, size: CGFloat(size))
    }

    struct FontStyle {
        public static let italic: String = "Roboto-LightItalic"
        public static let normal: String = "Roboto-Light"
        public static let thin: String = "Roboto-Thin"
    }
}

Roboto-LightItalic и Roboto-Light - это имена файлов шрифтов TTF. Затем вы можете просто позвонить

someUILabel.setFont(style: UILabel.FontStyle.normal, size: 20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...