随系统设置变化
两行代码:
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内设置字体大小
例如微信,在设置中可以使用滑块设置全区字体大小。
网友评论