我正在尝试在我的应用程序中设置应该与 6.1+ 兼容的动态类型。我正在使用preferredFontForTextStyle:
它显然在 iOS <7.0 上崩溃
你如何解决这个问题?
respondsToSelector:
并将每种字体设置分成两个?
有没有更好的办法?
提前致谢!
仅当 iOS 版本低于 7 时,您才能动态修补 UIFont。
您应该如何修补不存在的方法:
在 UI7Kit 中,我使用由 FoundationExtension 提供的 addClassMethodForSelector:... 对其进行了修补。
见:https ://github.com/youknowone/UI7Kit/commit/701c44a69406ad971794c9ab46aeb0cfac1fa207#L3R57
此代码添加新方法preferredFontForTextStyle:从现有方法实现__preferredFontForTextStyle:
此外,UI7Kit 现在开始支持该方法。(以非常粗略的方式)如果你想试试。
我一直在考虑这个;如果应用程序在 iOS 6 上运行,最好的方法可能是在运行时手动将preferredFontForTextStyle:
方法添加到UIFont
类中,然后在那里动态选择适当的系统字体大小。github 上的 UI7Kit 项目为其他方法做了类似的事情,但不幸的是不是这个。