iOS字体变化

2021-06-30  本文已影响0人  夜雨聲煩_

随系统设置变化

两行代码:

label.adjustsFontForContentSizeCategory = YES;
label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleTitle1];

示例:

UILabel *label  = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 599, 30)];
label.textColor = [UIColor blackColor];
label.text = @"123abcd阿道夫辣豆腐急功近利感觉跟jhkbkbkjkb kjb客家话可";
label.adjustsFontForContentSizeCategory = YES;
label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleTitle1];
[self.view addSubview:label];

UILabel *label2  = [[UILabel alloc] initWithFrame:CGRectMake(20, 200, 599, 30)];
label2.textColor = [UIColor blackColor];
label2.text = @"123abcd阿道夫辣豆腐急功近利感觉跟jhkbkbkjkb kjb客家话可";
label2.adjustsFontForContentSizeCategory = YES;
label2.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote];
[self.view addSubview:label2];

系统提供UIFontTextStyleTitle1等各种不同大小字体。
如果想使用其他字体,使用如下方法:

UIFontDescriptor *userFont = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
float userFontSize = [userFont pointSize];
UIFont *font = [UIFont fontWithName:@"ArialHebrew-Bold" size:userFontSize];

系统字体大小改变设置回调,微信实现方式。可收到通知后进行自定义提示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contentSizeChanged:) name:UIContentSizeCategoryDidChangeNotification object:nil];

//noti中UIContentSizeCategoryNewValueKey字段返回设置字体。
- (void)contentSizeChanged:(NSNotification *)noti {
    //"UICTContentSizeCategoryXS": 44,
//    "UICTContentSizeCategoryS": 44,
//    "UICTContentSizeCategoryM": 44,
//    "UICTContentSizeCategoryL": 44,
//    "UICTContentSizeCategoryXL": 55,
//    "UICTContentSizeCategoryXXL": 65,
//    "UICTContentSizeCategoryXXXL": 65,
//
//    "UICTContentSizeCategoryAccessibilityM": 65,
//    "UICTContentSizeCategoryAccessibilityL": 65,
//    "UICTContentSizeCategoryAccessibilityXL": 65,
//    "UICTContentSizeCategoryAccessibilityXXL": 65,
//    "UICTContentSizeCategoryAccessibilityXXXL": 75
    NSLog(@"----------------------------");
}

在app内设置字体大小

例如微信,在设置中可以使用滑块设置全区字体大小。

上一篇 下一篇

猜你喜欢

热点阅读