Tag: kerning

字体不在iOS中

我使用FontForge创build了一个自定义字体,用于我的iOS应用程序。 当我在我的应用程序中使用字体时,字距不被应用。 有一个已知的错误,字距不适用于UITextView。 我在UILabel和UITextField中使用这个,所以这不是问题。 我的目标是iOS 5.0。 我能够在Font Book和Pages中查看字体,并看到字距正在工作。 但是,字距不适用于Mac。 我已经在Word中启用了字距,但是在这里不起作用。 我不太关心Word。 我主要希望这在iOS中工作。 我已经创build了字体作为.otf和.ttf字体,用于生成字体集的各种FontForge选项。 我玩过的选项是Apple,OpenType和OT / Old Style和OT / DSIG。 页面将适当地应用字距生成选项的所有组合,除非刚刚选中OpenType。 当苹果被检查时,字体书将只显示核心,没有别的。 我已经阅读了其他论坛上关于让字体与Word一起工作的一些意见,但没有任何关于字距调整和iOS的具体内容。 任何人有任何经验: 1)在OS X上使用FontForge在iOS应用程序中成功创build字形字体? 要么 2)成功地在OS X上使用在Word中工作的FontForge创build字母字体? 这可能会让我更接近,即使你没有在iOS上的字体的经验。 我有一个我玩过的雕文的试用版,但我不想移动到另一个字体程序来完成。 任何帮助,将不胜感激。

在iOS UITextView中进行确认

对于显然是一个“错误”,UITextView似乎不像其他UIKit元素那样支持字距调整。 有没有解决方法来克服工作? 清楚的是,我正在讨论在字体文件中定义的字符对之间的间距,而不是所有字符之间的总体间距。 在NSAttributedString使用NSKernAttributeName将调整所有字符之间的间距,但内置的字符对仍然不起作用。 例如: 有没有解决这个问题的解决方法? 我发现一个简单的解决方法是将CSS样式添加到启用字距调整的UITextView。 如果我使用未公开的方法setContentToHTMLString:我可以将CSS注入到文本视图中的秘密web视图。 NSString *css = @"*{text-rendering: optimizeLegibility;}"; NSString *html = [NSString stringWithFormat:@"<html><head><style>%@</style></head><body>Your HTML Text</body></html>", css]; [textView performSelector:@selector(setContentToHTMLString:) withObject:html]; 这立即解决了这个问题。 不过,这很可能会导致应用程序被拒绝。 有没有一种安全的方式来偷偷进入文本视图的一些CSS? 我已经尝试过的其他解决方法包括: 使用webview和contenteditable属性。 这是不理想的,因为webview做了一堆额外的东西,例如input辅助视图,不容易被隐藏。 使用核心文本手动子类化UITextView并呈现文本。 这比我希望的更复杂,因为所有select的东西都​​需要重新configuration。 由于UITextView的UITextPosition和UITextRange的私有子类,这是一个巨大的痛苦,如果不是完全不可能的屁股。

如何在iPhone UILabel中设置字距

我正在开发一个iPhone应用程序,我想在UILabel中设置字距。 我写的代码(可能围绕kCTKernAttributeName )似乎是错误的。 我怎样才能解决这个问题? NSMutableAttributedString *attStr; NSString *str = @"aaaaaaa"; CFStringRef kern = kCTKernAttributeName; NSNumber *num = [NSNumber numberWithFloat: 2.0f]; NSDictionary *attributesDict = [NSDictionary dictionaryWithObject:num forKey:(NSString*)kern]; [attStr initWithString:str attributes:attributesDict]; CGRect frame1 = CGRectMake(0, 0, 100, 40); UILabel *label1 = [[UILabel alloc] initWithFrame:frame1]; label1.text = attStr [self.view addSubview:label1];