我可以在iPhone应用程序中embedded自定义字体吗?

这个问题涉及iOS 3.2之前的版本。 从3.2开始,使用samvermette的答案很容易实现这个function,并且我已经将接受的答案(从commanda改为samvermette)来反映这一点。 我不能赞扬这两个答案(除了upvotes),但他们都很好。 我想有一个应用程序包含一个自定义字体来渲染文本,加载它,然后使用标准UIKit元素,如UILabel 。 这可能吗? 我发现这些链接: http://discussions.apple.com/thread.jspa?messageID=8304744 http://forums.macrumors.com/showthread.php?t=569311 但是这些都要求我自己渲染每个字形,这有点像辛勤工作,特别是对于多行文本。 我也发现了一些文章,说明这是不可能的,但没有理由,所以我正在寻找一个明确的答案。 编辑 – 失败-[UIFont fontWithName:size:]实验 我下载了Harrowprint.tff(从这里下载),并将其添加到我的资源目录和项目。 然后我试了这个代码: UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20]; 导致抛出exception。 查看Finder中的TTF文件,确认字体名称是Harrowprint。 编辑 – 到目前为止,已经有了很多回复,这些回复告诉我要阅读X或Y的文档。我已经对这些内容进行了广泛的尝试,并没有得到任何答案。 在一个案例中,X原来只与OS X相关,而不是iPhone。 因此,我为这个问题设置了一个奖励,我将赏金给第一个提供答案的人(只使用logging的API),他们用足够的信息来回答这个问题。 在模拟器上工作也将是一个奖金。 编辑 – 看来,赏金自动奖给答案与最高票数。 有趣。 没有人真正提供了一个解决问题的答案 – 问题涉及编写自己的UILabel子类的解决scheme不支持自动换行,这对我来说是一个重要的function – 尽pipe我想我可以扩展它来这样做。

如何findalgorithm的时间复杂度

问题 如何findalgorithm的时间复杂度? 在SO上发布问题之前我做了什么? 我已经通过这个 , 这个和其他许多环节 但是,没有我能够find一个明确和直接的解释如何计算时间复杂性。 我知道什么 ? 说一个简单的代码如下所示: char h = 'y'; // This will be executed 1 time int abc = 0; // This will be executed 1 time 说一个如下所示的循环: for (int i = 0; i < N; i++) { Console.Write('Hello World !'); } int i = 0; 这将只执行一次 。 时间实际上是计算为i=0而不是声明。 我<N; […]

JSF,Servlet和JSP有什么区别?

JSP和Servlet是如何相互关联的? JSP是什么样的Servlet? JSP和JSF如何相互关联? JSF是一种像ASP.NET-MVC一样的基于预构buildUI的JSP吗?

MVVM:教程从头到尾?

我是一名具有5年以上经验的C#/ Windows Forms程序员。 我一直在使用MVVM(Model-View-ViewModel)devise模式来研究WPF。 我已经在网上search教程。 我甚至观看了Jason Dolinger完美的video。 虽然我find了很多,我还没有find一个从头到尾的我。 我真正想要的是一个不承担任何以前的WPF知识的教程。 什么是你最喜欢的WPF-MVVM教程,帮助你学习?

为什么正则expression式的构造函数需要双重逃脱?

在下面的正则expression式中, \s表示空格字符。 我想象正则expression式parsing器,正在通过string,并看到\并知道下一个字符是特殊的。 但事实并非如此,因为需要双重转义。 为什么是这样? var res = new RegExp('(\\s|^)' + foo).test(moo); 有没有一个具体的例子,说明一个逃生可能被误解为别的东西?

我为什么不要#include <bits / stdc ++。h>?

我用我的代码发布了一个问题,只有#include指令如下: #include <bits/stdc++.h> 我的老师告诉我这样做,但在评论部分,我被告知我不应该这样做。 为什么?

在Python中没有列出理解

join清单: >>> ''.join([ str(_) for _ in xrange(10) ]) '0123456789' join必须采取迭代。 显然, join的参数是[ str(_) for _ in xrange(10) ] x [ str(_) for _ in xrange(10) ] ,这是一个列表理解 。 看这个: >>>''.join( str(_) for _ in xrange(10) ) '0123456789' 现在, str(_) for _ in xrange(10) ,no [] , join的参数就是str(_) for _ in xrange(10) ,但结果是一样的。 为什么? str(_) […]

如何在没有用户干预的情况下授权应用程序(网页或安装)? (规范?)

假设我有一个需要在后台服务中访问云端硬盘文件的networking应用程序。 它将拥有自己正在访问的文件,也可以在拥有者共享文档的Google帐户中运行。 我明白,我的应用程序需要一个刷新令牌,但我不想写代码来获取,因为我只会做一次。 NB。 这不是使用服务帐户。 该应用将在传统的Google帐户下运行。 我不是说这是一个好主意,在某些情况下,服务帐户是一种有效的方法。 然而,使用Oauth Playground模拟应用程序的技术可以节省大量的重复劳动。

处理NSDateFormatter语言环境“feechur”的最佳方法是什么?

看来, NSDateFormatter有一个“function”,意想不到的咬你:如果你做一个简单的“固定”格式的操作,如: NSDateFormatter* fmt = [[NSDateFormatter alloc] init]; [fmt setDateFormat:@"yyyyMMddHHmmss"]; NSString* dateStr = [fmt stringFromDate:someDate]; [fmt release]; 然后,它在美国和大多数地区正常工作,直到…一个人的手机设置为24小时的地区设置12/24小时开关设置为12。然后上面开始加上“AM”或“PM”上结果string的结尾。 (见,例如, NSDateFormatter,我做错了什么或这是一个错误? ) (请参阅https://developer.apple.com/library/content/qa/qa1480/_index.html ) 显然苹果已经宣布这是“坏” – 破碎devise,他们不会解决它。 规避显然是为特定地区(通常是美国)设置date格式化程序的语言环境,但是这有点麻烦: NSLocale *loc = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; [df setLocale: loc]; [loc release]; 不是太糟糕了,但是我正在处理大约10个不同的应用程序,而我所看到的第一个应用程序有43个这种情况。 因此,对于macros/重写类/任何的任何聪明的想法,以尽量减less努力改变一切,而不使代码晦涩? (我的第一个直觉是用一个版本来覆盖NSDateFormatter,这个版本会在init方法中设置locale。需要改变两行 – alloc / init行和添加的导入。) 添加 这是我到目前为止 – 似乎在所有情况下工作: @implementation BNSDateFormatter -(id)init { static NSLocale* […]

(lambda)函数closures捕获什么?

最近我开始玩Python,并且在closures工作的时候遇到了一些奇怪的事情。 考虑下面的代码: adders=[0,1,2,3] for i in [0,1,2,3]: adders[i]=lambda a: i+a print adders[1](3) 它构build了一个简单的函数数组,它接受一个单一的input并返回一个数字所添加的input。 这个函数是在for循环里构造的,迭代器从0到3运行。 对于这些数字中的每一个,都会创build一个lambda函数来捕获i并将其添加到函数的input中。 最后一行以3作为参数调用第二个lambda函数。 令我惊讶的是,输出是6 。 我预计4 。 我的推理是:在Python中,一切都是一个对象,因此每个variables都是必不可less的指针。 当为i创buildlambdaclosures时,我期望它存储一个指向i当前指向的整数对象。 这意味着当i分配一个新的整数对象时,它不应该影响以前创build的闭包。 可悲的是,在debugging器中检查adders数组显示它。 所有的lambda函数都指向i的最后一个值3 ,这导致adders[1](3)返回6 。 这使我想知道以下几点: 什么closures准确捕获? 说服lambda函数捕捉i的当前值的最优雅的方式是什么,当i改变它的值时不会受到影响?