IOS:取消注册CoreText注册的字体

IOS:取消注册CoreText注册的字体,第1张

概述我在运行时加载ttf字体并使用CoreText注册它们.稍后,当字体更新时,我从CoreText取消注册字体,从服务器下载最新版本并再次使用CoreText注册字体. 这几乎可以工作,但看起来字体是缓存的,直到我的应用程序终止并重新启动才更新. 取消注册字体并从任何缓存中删除它的正确方法是什么? 我使用此代码取消注册字体: NSURL *url = /* My url to the font */ 我在运行时加载ttf字体并使用CoreText注册它们.稍后,当字体更新时,我从CoreText取消注册字体,从服务器下载最新版本并再次使用CoreText注册字体.

这几乎可以工作,但看起来字体是缓存的,直到我的应用程序终止并重新启动才更新.

取消注册字体并从任何缓存中删除它的正确方法是什么?

我使用此代码取消注册字体:

NSURL *url = /* My url to the Font */;CGDataProvIDerRef FontDataProvIDer = CGDataProvIDerCreateWithURL((__brIDge CFURLRef) url);CGFontRef newFont = CGFontCreateWithDataProvIDer(FontDataProvIDer);CGDataProvIDerRelease(FontDataProvIDer);CFErrorRef error = nil;CTFontManagerUnregistergraphicsFont(newFont,&error);CGFontRelease(newFont);if (error) {    NSLog(@"Error unregistering Font: %@",error);}return newFontname;

我觉得有一件事是错的,但不知道如何解决,是我如何得到CGFontRef. CGFontCreateWithDataProvIDer每次都会创建新的引用,还是我已经注册了已注册的CGFontRef(如果存在的话)?有没有更好的方法来获得已注册字体的CGFontRef?

我只使用字体来创建动态UIImage实例,所以我认为没有任何标签或其他UI元素保持对字体的引用.

谢谢你的帮助!

解决方法 经过一番尝试,我认为这是iOS 7的一个错误. 你试过在iOS 6中运行吗? 总结

以上是内存溢出为你收集整理的IOS:取消注册CoreText注册的字体全部内容,希望文章能够帮你解决IOS:取消注册CoreText注册的字体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1099771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存