You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否完全关闭项目中的Accessibility?使系统辅助设置对应用无影响

如何在iOS项目中完全屏蔽系统辅助功能设置对应用的影响

全局层面彻底屏蔽

  • 强制关闭粗体文本适配:在项目的Info.plist文件里添加UIApplicationDisableBoldText键,将其值设为YES,这样不管用户系统里有没有开启粗体文本,应用内的字体都不会变粗。
  • 固定字体大小,忽略动态类型:在应用启动代码里(AppDelegate或SceneDelegate)强制设置全局内容大小类别为固定值,示例代码如下:
    // iOS 13+ 适配SceneDelegate的场景
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = scene as? UIWindowScene else { return }
        let window = UIWindow(windowScene: windowScene)
        self.window = window
        // 固定为中等尺寸,不受系统字体大小设置影响
        UIApplication.shared.preferredContentSizeCategory = .medium
        window.rootViewController = ViewController()
        window.makeKeyAndVisible()
    }
    
    设置后,应用内所有依赖动态类型的字体都会固定为对应尺寸,不会随系统设置变化。

单个控件单独屏蔽

如果不需要全局修改,只想针对特定控件做处理:

  • 给UILabel、UIButton等控件设置adjustsFontForContentSizeCategory = false,同时直接指定固定字体,不要使用preferredFont(forTextStyle:)这类适配动态类型的方法,示例代码:
    let titleLabel = UILabel()
    titleLabel.font = UIFont.systemFont(ofSize: 18)
    titleLabel.adjustsFontForContentSizeCategory = false
    
    这样该控件就不会响应系统的粗体文本和字体大小调整了。

注意提醒

这种做法违背Apple的无障碍设计规范,除非有必须执行的特殊业务场景,否则不建议实施——辅助功能是为了帮助有特殊需求的用户正常使用应用,屏蔽后会直接影响这部分用户的体验。

内容的提问来源于stack exchange,提问作者SeanKly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:01:31