我在我的 iOS 项目中使用自定义字体为 UILabel
实现可访问性动态字体。
看起来像这样:
let pointSize = UIFontDescriptor.preferredFontDescriptor(withTextStyle: .footnote).pointSize
myLabel.font = UIFont(name: "my-custom-font", size: pointSize)
问题是,即使在设备设置中禁用了 Larger Accessibility sizes
,也会应用此代码,这对我不利。
仅当启用Larger Accessibility sizes
时,我如何才能应用此代码?
最佳答案
您可以通过以下方式查看:
Objective-C 代码,您可以将其转换为 swift。并根据需要拥有自己的支票。
+(BOOL)isCurrentPreferredContentSizeCategoryIsAccessibilityLarge
{
NSString *contentSize = [UIApplication sharedApplication].preferredContentSizeCategory;
if([contentSize isEqualToString:UIContentSizeCategoryExtraExtraExtraLarge]
|| [contentSize isEqualToString:UIContentSizeCategoryAccessibilityMedium]
|| [contentSize isEqualToString:UIContentSizeCategoryAccessibilityLarge]
|| [contentSize isEqualToString:UIContentSizeCategoryAccessibilityExtraLarge]
|| [contentSize isEqualToString:UIContentSizeCategoryAccessibilityExtraExtraLarge]
|| [contentSize isEqualToString:UIContentSizeCategoryAccessibilityExtraExtraExtraLarge]) {
return YES;
}
return NO;
}
第二种方法是使用特征集合的 preferredContentSizeCategory 属性来检查它。您可以在 traitCollectionDidChange 中响应这些更改,并相应地更改 UI。
关于iOS:如何检测设备辅助功能设置中的 "Larger Accessibility sizes"开关是否打开/关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64877370/