目前我可以找到的唯一方法是进入设置并使用UI更改值(编辑:partial solution描述如下).这很慢又麻烦我怀疑有一种方法可以使用私有的API动态地改变它,但是我无法弄明白如何.由于我的目标是只用于调试,私有API使用和swizzling是好的(这段代码将不会生产).
为了尝试找到一个私有的API来做这个,我看了一些逆向工程资源.我是最新的反汇编器,符号表,类转储和查找可以使用的私有API,但这是我迄今为止所尝试的:
>我成功的swizzled – [UIApplication preferredContentSizecategory](其他帖子说这个工作过去),但这并不影响从[UIFont preferredFontForTextStyle:]返回的结果.
>使用反汇编IDA我发现[UIFont preferredFontForTextStyle:]在私有框架UIFoundation.framework中. ( – [UIApplication preferredContentSizecategory]在UIKit.framework中,但是反汇编没有任何用处).
>正如我开始写这个问题(总是这样),我发现了一个partial solution.可以在该方案中设置一个启动参数来设置启动时的值.这是有用的,但不是我以后.
>通过上述答案,我found用户偏好的值显然存储在位于模拟器数据/库/首选项目录中的com.apple.UIKit.pList文件中.我们之后的值可以从命令行实用程序plutil设置.这也是一个改进!但是我想在运行时动态地改变它.
更多关于我IDA的结果:
我真的不知道如何阅读反汇编,但是[UIFont preferredFontForTextStyle:]似乎指向一个名为___UIFontForTextStyle的符号,它似乎指向一些有趣的声音符号,叫做_getUIContentSizecategoryUnspecifIEd和_getUIContentSizecategoryPreferenceClass
___UIFontForTextStyle" src="https://i.stack.imgur.com/mZoV3.png">我也使用UIFoundation.framework上的命令行实用程序nm
找到这些符号.他们用小写字母“s”表示,显然是“The symbol is in an uninitialized data section for small objects.”.我不知道这是什么意思(我所收集的都是他们不是一个类或方法).
在网页上搜索_getUIContentSizecategory …符号不会产生任何内容,但附近还有另一个符号_getUIApplicationClass.我搜索了一个,因为它听起来更一般,在WebKit source年发现了类似的东西.可能没什么,但也许这是一个内部的苹果惯例.无论如何,这个例子并没有真正帮助我解决问题.
无论如何感谢阅读到目前为止.如果你还在这里,我的问题是:
我想要动态地模拟动态类型大小偏好的值.这些反汇编符号可能有所帮助,但也许我错了.感觉就像解决方案很接近,但我只是不能把所有的东西放在一起.
将此值设置为启动参数是很好的,但不能完全解决我的问题.同样,修改模拟器在pList中的值也对自动化也很好,但是并不能解决我的问题.
有没有办法在运行时动态地改变这个值?
解决方法 多么尴尬!我正在查看一些过时的iOS 9.x文档,并错过了uitraitcollection在iOS 10中获得了init(preferredContentSizecategory:UIContentSizecategory)和var preferredContentSizecategory:UIContentSizecategory:UIContentSizecategory,这在 Brandon Williams中有帮助地指出了我.这完全满足了我的需求. 总结以上是内存溢出为你收集整理的动态模拟iOS动态类型系统文字大小(UIContentSizeCategory)全部内容,希望文章能够帮你解决动态模拟iOS动态类型系统文字大小(UIContentSizeCategory)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)