我正在尝试在我的应用程序中设置动态类型,它应该与 6.1+ 兼容。
我正在使用 preferredFontForTextStyle:
,它显然在 iOS <7.0
您如何解决这个问题?
respondsToSelector:
并将每个字体设置一分为二?
有没有更好的办法?
提前致谢!
最佳答案
只有 iOS 版本低于 7 时,您才能动态修补 UIFont。
你应该如何修补不存在的方法:
- 准备自己替换不存在的方法。
- 检查操作系统版本 - 'respondsToSelector:` 是测试它的好方法。
- 如果方法不存在,则添加实现。
在 UI7Kit 中,我使用 FoundationExtension 提供的 addClassMethodForSelector:... 对其进行了修补。
参见:https://github.com/youknowone/UI7Kit/commit/701c44a69406ad971794c9ab46aeb0cfac1fa207#L3R57
此代码添加新方法 preferredFontForTextStyle: 从现有方法实现 __preferredFontForTextStyle:
此外,UI7Kit 现在开始支持该方法。 (还很粗糙) 如果需要,请尝试。
关于ios - iOS 7 上的动态类型向后兼容 iOS 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912270/