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