2011-04-20 77 views
8

這可能也可能會被問爲「kCTKernAttributeName是一個用詞不當嗎?」如何更改核心文本中的字母間距/跟蹤?

我需要更改iOS中某些文本的字母間距/跟蹤。 (我使用的字體在小尺寸時稍顯緊張。)有核心圖形例程會改變字符間距,但這些例程不處理Unicode。還有其他一些核心圖形例程,它們是根據字形定義的,但這些例程看起來像是一個受傷的世界,除此之外,沒有將字體中不存在的字形恢復爲系統字體的安全網。

所以核心文本看起來就像這樣做,核心文本支持CFAttributedString上的kCTKernAttributeName。我認爲這會做我想做的事情,但這實際上並不是線索,因爲字距對通常是一個字符對屬性,並且(從文檔看來)只是對所有字形的字形提前進行統一調整,即,跟蹤。

如果有誰知道之前,我去下變頻的核心文本API的相當痛苦的路徑...

回答

4

kCTKernAttribute名稱應該做你想要什麼。將其設置在一定範圍的文本上可以一致地調整字間間距,而不考慮特定的字形。

我認爲問題的一部分是字距似乎是跟蹤的虛擬同義詞(它仍然只是「調整要打印的文本片段之間的間距(字母或字符)」與OS X),現在正在採用雙絞線的含義,因爲冗餘。可能是一個詞源學家會更好地置評論這方面的事情......

+1

工作很好。謝謝!必須手動實現陰影顏色,但這並不難。 – smparkes 2011-04-21 18:50:11