iOS:如何检测设备辅助功能设置中的 "Larger Accessibility sizes"开关是否打开/关闭

标签 ios swift xcode

我在我的 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/

相关文章:

ios - 如何在iOS设备上远程安装应用程序

iphone - 核心数据 : How to design a tree data structure from one core data entry

ios - 如何快速获取json对象的数组

ios - 将加密 key 存储在 defaultConfiguration 中是否安全?

ios - 在 iOS 中从 HLS 下载特​​定分辨率

ios - 使用 MVVM 在 SwiftUI 中显示警报

ios - 界面生成器未在 Xcode 9 中打开

iphone - 在 UITableView 中插入新单元格时表格未向上移动

ios - 如何知道 segue 是推送还是模态

带有二进制正文的 iOS 快速发布请求