fbCharm
1.0.5

如果您是一位WEB 開發者,相信您對CSS 的font-family 屬性一定不會陌生。通常我們會為font-family 屬性設置一長串的字體(家族)列表,就像這樣的:
. text { font-family : Menlo , Monaco , Consolas , "Courier New" , monospace , Arial , "Microsoft YaHei" , "黑体" , "宋体" , sans-serif; }有人肯定會問,為什麼要這麼設置啊?如果你足夠細心,你一定會發現當你瀏覽該網頁時英文字體和中文字體並不是同一種字體,如果你在不同的操作系統甚至不同的電腦上看到網頁所呈現的字體也不一樣。這又是為什麼呢?
此外,在您使用Microsoft Word 進行段落排版的時候,你會發現Word 可以自動對中文樣式應用中文字體,對英文樣式應用英文字體。這又是如何做到的呢?
在實際的排版需求中,為了好看,我們通常會需要針對不同語言的文字(script) 進行不同的字體設定,以達到最佳的視覺效果。當然,對於我們來說,最常見的還是中英文混排。通常設計人員給出的設計稿非常漂亮,可是中英文使用了不同的字體,我們開發人員該如何高保真地還原設計稿的原始設計呢?
很顯然,對於WEB 開發者來說,已經有了很好的解決方案,而對於其他客戶端的同學來說,這估計應該就有點犯難了,我們通常會告訴設計人員:“系統不支持” 抑或“做不了” 之類的話。那事實上,到底能不能做到呢?答案是肯定的。


方法一: fbCharm is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'fbCharm'
let text = "これは日本語文章と Roman Text の混植文章です。美しいヒラギノと San Francisco で日本語とローマ字を書きます。System Font のフォントメトリクスには独自の調整が入っています。 n n这是一段中文简体。 n這是一段中文繁體。 nうつくしい森で飾られたモーリオ市、 n郊外のぎらぎらひかる草の波。 n祇辻飴葛蛸鯖鰯噌庖箸n底辺直卿蝕薩化n ABCDEFGHIJKLM n abcdefghijklm n 1234567890 n iClockᴹᴵᴺᴵ n Clockª "
let fontSize : CGFloat = 22.0
// 適当に行間を空ける処理
let paragraphStyle : NSMutableParagraphStyle = NSMutableParagraphStyle ( )
paragraphStyle . minimumLineHeight = fontSize * 1.5
paragraphStyle . maximumLineHeight = paragraphStyle . minimumLineHeight
let attributedString = NSMutableAttributedString ( text : text , families : [ " Lucida Grande " , " Baskerville " , " Apple SD Gothic Neo " ] , size : 18.0 , weight : . light , kern : 4.0 , paragraphStyle : paragraphStyle )
self . label . attributedText = attributedString
//let font = UIFont(families: ["Lucida Grande", "Baskerville", "Apple SD Gothic Neo"], size: 20, weight: .medium)
//self.label.font = font
//self.label.text = text