Подтвердить что ты не робот

UILabel - настройка шрифта - шрифт программно в iPhone

У меня есть следующий код в моем приложении.

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 = жирный" через код?

4b9b3361

Ответ 1

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

[UIFont fontNamesForFamilyName:@"AmericanTypewriter"] 

на консоль.

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

[UIFont fontNamesForFamilyName:@"AmericanTypewriter-Bold"] 

Ответ 2

Как насчет использования свойства 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];

Ответ 3

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

Ответ 4

Вы можете получить все имена шрифтов, поддерживаемые 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];

Ответ 5

Как и @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 материал: fooobar.com/questions/49063/...

Ответ 6

Быстрое обновление

Если вы уже добавили шрифт в приложение (как описано здесь), вы можете использовать функцию 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)