
หากคุณเป็นนักพัฒนาเว็บฉันเชื่อว่าคุณจะคุ้นเคยกับแอตทริบิวต์ Font-Family ของ CSS โดยปกติแล้วเราจะตั้งค่าฟอนต์ (ครอบครัว) สำหรับคุณสมบัติของครอบครัวแบบฟอนต์เช่นนี้:
. text { font-family : Menlo , Monaco , Consolas , "Courier New" , monospace , Arial , "Microsoft YaHei" , "黑体" , "宋体" , sans-serif; }บางคนจะถามอย่างแน่นอนทำไมคุณต้องตั้งค่านี้? หากคุณระมัดระวังพอคุณจะพบว่าเมื่อคุณเรียกดูหน้าเว็บฟอนต์ภาษาอังกฤษและแบบอักษรภาษาจีนนั้นไม่ใช่แบบอักษรเดียวกัน หากคุณเห็นแบบอักษรที่นำเสนอโดยหน้าเว็บบนระบบปฏิบัติการที่แตกต่างกันหรือแม้กระทั่งในคอมพิวเตอร์ที่แตกต่างกันคุณจะเห็นว่าตัวอักษรที่นำเสนอบนหน้าเว็บนั้นแตกต่างกัน ทำไมถึงเป็นเช่นนี้?
นอกจากนี้เมื่อคุณใช้ Microsoft Word สำหรับการเรียงลำดับย่อหน้าคุณจะพบว่าคำนั้นสามารถใช้แบบอักษรจีนกับสไตล์จีนและแบบอักษรภาษาอังกฤษกับสไตล์ภาษาอังกฤษได้โดยอัตโนมัติ ทำอย่างไร?
ในความต้องการการเรียงพิมพ์จริงเพื่อให้ดูดีเรามักจะต้องทำการตั้งค่าแบบอักษรที่แตกต่างกันสำหรับข้อความ (สคริปต์) ในภาษาต่าง ๆ เพื่อให้ได้เอฟเฟกต์ภาพที่ดีที่สุด แน่นอนสำหรับเราสิ่งที่พบบ่อยที่สุดคือการจัดเรียงแบบผสมในภาษาจีนและภาษาอังกฤษ โดยปกติแล้วร่างการออกแบบที่ได้รับจากนักออกแบบจะสวยงามมาก แต่ใช้ฟอนต์ที่แตกต่างกันเป็นภาษาจีนและภาษาอังกฤษ เราจะพัฒนาการออกแบบดั้งเดิมของร่างการออกแบบที่มีความซื่อสัตย์สูงได้อย่างไร
เห็นได้ชัดว่าสำหรับนักพัฒนาเว็บมีทางออกที่ดีอยู่แล้ว แต่สำหรับนักเรียนเกี่ยวกับลูกค้ารายอื่นอาจเป็นเรื่องยาก เรามักจะบอกนักออกแบบ: "ระบบไม่รองรับ" หรือ "ไม่สามารถทำได้" ในความเป็นจริงมันสามารถทำได้หรือไม่? คำตอบคือใช่


วิธีที่ 1: fbCharm มีให้บริการผ่าน Cocoapods หากต้องการติดตั้งเพียงเพิ่มบรรทัดต่อไปนี้ลงใน 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