มีใครประสบความสำเร็จในการใช้แบบอักษร otf แบบกำหนดเองบน iPhone หรือไม่

ดูเหมือนว่าจะมีวิธีแก้ไขปัญหาบางอย่างสำหรับการใช้แบบอักษรชนิดจริงที่กำหนดเอง (ttf) บน iPhone โดยเฉพาะอย่างยิ่ง ฉันสามารถฝังแบบอักษรที่กำหนดเองในแอปพลิเคชัน iPhone ได้หรือไม่ อย่างไรก็ตาม วิธีนี้ไม่รองรับแบบอักษรแบบเปิด (otf)

มีใครเคยพบวิธีใช้แบบอักษร otf บ้างไหม?


person BP.    schedule 03.09.2009    source แหล่งที่มา


คำตอบ (6)


คุณต้องใช้ฟอนต์ otf บนอุปกรณ์หรือแปลงเป็น ttf ได้ไหม การแปลงแบบอักษร OTF เป็นแบบอักษร TTF ค่อนข้างตรงไปตรงมาโดยใช้เครื่องมือเช่น fontforge ซึ่งบางทีอาจเป็นเช่นนั้น เป็นทางออกที่ง่าย

person Joey Hagedorn    schedule 03.09.2009
comment
ขอบคุณ สิ่งนี้ใช้ได้ผลดีและแบบอักษร otf->ttf ที่แปลงแล้วได้รับการยอมรับโดยโค้ด FontLabel ที่เชื่อมโยงกับด้านบน โปรดทราบ: การพยายามติดตั้ง FontForge บน Snow Leopard โดยการเปิดตัวแพ็คเกจทำให้เกิดข้อผิดพลาดแจ้งว่าไม่สามารถติดตั้งบนระบบปฏิบัติการเวอร์ชันนี้ได้ อย่างไรก็ตาม แอปนี้ได้รับการติดตั้งในโฟลเดอร์แอปพลิเคชันและทำงานได้โดยไม่มีข้อผิดพลาด อาจเป็นข้อผิดพลาด 64 บิตกับแพ็คเกจการติดตั้ง - person BP.; 09.09.2009
comment
มีข้อผิดพลาดบางประการ เนื่องจากฟอนต์บางตัวอาจไม่ทำงาน ลองใช้แบบอักษรอื่นด้วยเพื่อให้แน่ใจ ในกรณีของฉัน ฉันติดตั้งฟอนต์ลงใน Mac สำเร็จแล้ว แต่ฟอนต์ยังใช้งานไม่ได้บน iOS - person Gökhan Barış Aker; 26.06.2012
comment
นี่คือเครื่องมือออนไลน์สำหรับแปลง OTF เป็น TTF freefontconverter.com/index.php - person Deepak Samuel Rajan; 13.08.2013
comment
ลิงก์นี้ codewithchris.com/ มีประโยชน์มากที่สุดตามคำตอบด้านล่าง ไม่จำเป็นต้องแปลง .otf เป็น .ttf ลิงก์นี้ช่วยให้ฉันใช้ .otf ที่ลูกค้าจัดเตรียมไว้ให้ - person mask; 15.02.2014

สำหรับโปรเจ็กต์ของฉันเอง ฉันต้องการใช้ฟอนต์ opentype และโดยทั่วไปฉันใช้วิธีนี้:

เพิ่มไฟล์ฟอนต์แบบกำหนดเองของคุณลงในโปรเจ็กต์ของคุณโดยใช้ XCode เป็นทรัพยากร เพิ่มคีย์ลงในไฟล์ info.plist ของคุณ (ฟอนต์ที่แอปพลิเคชันให้มา) สำหรับฟอนต์แต่ละตัวที่คุณมี ให้ป้อนชื่อเต็มของไฟล์ฟอนต์ของคุณ (รวมถึงนามสกุล) บันทึกข้อมูล plist จากนั้นใช้สิ่งนี้กับป้ายกำกับของคุณ (เช่น :)

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];

ในกรณีของฉัน @"Harrowprint" คือชื่อไฟล์ที่ไม่มีนามสกุลและไม่ใช่ชื่อแบบอักษรที่ Finder ให้มา

ฟอนต์ของฉันเป็นแบบ otf และใช้งานได้...ฉันเดาว่ามันรองรับแล้ว...หรือฉันโชคดี ฉันจะทดสอบแบบอักษรอื่น..และแจ้งให้คุณทราบ..

อ้างอิง:

person Rodo    schedule 06.01.2011
comment
ขอบคุณเพื่อน วิธีแก้ปัญหาของคุณง่ายมากและใช้งานได้ดี ขอบคุณมาก. - person Rostyslav Druzhchenko; 05.06.2012
comment
นี่ควรเป็นคำตอบที่ได้รับการยอมรับจริงๆ คำตอบที่ได้รับการยอมรับนั้นเป็นวิธีแก้ปัญหาที่ไม่จำเป็นมากกว่า - person Dermot; 14.01.2013
comment
นี่เป็นสิ่งที่ดีจริงๆ แหล่งข้อมูล. แตกต่างจากที่อธิบายไว้ข้างต้น คุณไม่สามารถสรุปได้ว่าชื่อไฟล์ของแบบอักษรจะเท่ากับชื่อแบบอักษรจริง (ซึ่งเป็นสิ่งที่คุณต้องการสำหรับการเรียกแบบอักษร UIFontwithName) - person zero0cool; 25.08.2014

ฉันก็มีปัญหากับเรื่องนี้เหมือนกัน นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน:

  1. คัดลอกไฟล์ฟอนต์ลงในทรัพยากร
  2. ตรวจสอบเพื่อดูว่าไฟล์ฟอนต์อยู่ใน 'ระยะการสร้าง' -> 'คัดลอกทรัพยากรบันเดิล' (Xcode วางไว้ที่นั่นสำหรับฉันเมื่อฉันเพิ่มไฟล์ลงในทรัพยากร หากไม่มีเหตุผลบางประการ ให้เพิ่มเข้าไป
  3. เพิ่มชื่อไฟล์ลงในไฟล์ info.plist ของคุณตามที่อธิบายไว้ข้างต้น รวมส่วนขยายด้วย
  4. เปิดสมุดแบบอักษร เลือกแบบอักษรของคุณ และดูตัวอย่าง-แสดงข้อมูลแบบอักษร และดูที่ 'ครอบครัว' เช่น 'Foo'
  5. ใส่สิ่งนี้ลงในโค้ดของคุณที่ไหนสักแห่งแล้วตั้งค่าเบรกพอยต์เพื่อตรวจสอบอาร์เรย์ของชื่อ: NSArray *names = [UIFont fontNamesForFamilyName:@"Foo";
  6. เรียกใช้แอปของคุณและเมื่อมันพัง ให้คลิกขวาที่ตัวแปร 'ชื่อ' ในดีบักเกอร์ นี่จะแสดงชื่อแบบอักษรที่จะใช้ เช่น: <__NSCFArray 0xe9c4da0>( Foo-100Italic, Foo-100 )
    โปรดทราบว่าชื่อแบบอักษรของฉันไม่ได้แสดงอย่างถูกต้องที่อื่น ไม่ใช่ในชื่อไฟล์หรือในสมุดแบบอักษร
  7. คุณควรจะไปด้วย:
    myLabel.font = [UIFont fontWithName:@"Foo-100Italic" size:24];
person Alan McKean    schedule 22.08.2012
comment
ใน Font-Book ชื่อจริงของแบบอักษรของฉันเหมือนกับชื่อ PostScript นี่เป็นสิ่งเดียวที่ได้ผลสำหรับฉัน ฉันเคยใช้แบบอักษรที่กำหนดเองในอดีตและไม่เคยมีปัญหาจนถึงตอนนี้ ไม่รู้ว่ามีอะไรเปลี่ยนแปลงไปบ้าง แต่ก็ขอบคุณ - person Dcritelli; 19.02.2013
comment
จุดที่ 4, 5 และ 6 มีประโยชน์จริงๆ! - person Ravi; 06.11.2013

บทความนี้ตอบคำถามของคุณ (มันใช้งานได้ดีสำหรับฉันเมื่อใช้ OTF): http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/

รองรับ OTF อย่างสมบูรณ์แบบ ไม่จำเป็นต้องแปลงเป็น TTF

person etayluz    schedule 31.01.2014

สำหรับคำตอบแรก - วิธีแก้ปัญหานั้นถูกต้อง (เช่นเพียงแปลงฟอนต์เป็น TTF) แต่ซอฟต์แวร์ที่แนะนำนั้นยุ่งยากอย่างยิ่งในการรวบรวมและติดตั้ง แต่ฉันเพิ่งค้นหาโดย Google อย่างรวดเร็วและใช้สิ่งนี้แทน: http://www.freefontconverter.com/ และ นั่นทำงานได้อย่างสมบูรณ์แบบ

(อย่าลืมเพิ่มแบบอักษรลงในไฟล์ info.plist ของคุณด้วย)

person Salman    schedule 06.08.2012
comment
+1 สำหรับการอ้างอิงที่ดี อย่างไรก็ตาม อย่าพึ่งพาคำตอบที่ปรากฏในลำดับเฉพาะ (เช่น คำตอบแรก) ลำดับจะเปลี่ยนแปลงไปตามการตั้งค่าผู้ใช้ การโหวต ฯลฯ - person Caleb; 07.01.2013

ฉันค้นคว้าเรื่องนี้อย่างละเอียด และนี่คือวิธีที่ดีที่สุดที่ฉันพบ:

1) แปลงไฟล์ฟอนต์เป็น TTF โดยใช้เครื่องมือออนไลน์นี้: http://www.freefontconverter.com/

2) เพิ่มไฟล์ TTF ในโครงการของคุณ

3) ทำการกำหนดค่าบางอย่างให้กับไฟล์ info.plist ของคุณ:

3.1) แก้ไข info.plist เป็นซอร์สโค้ด (คลิกขวาที่ไฟล์ -> เปิดเป็น -> ซอร์สโค้ด)

3.2) เพิ่มสิ่งนี้:

 <key>UIAppFonts</key>
 <array>
  <string>font1.ttf</string>
  <string>font2.ttf</string>
  ...etc...
 </array>

3.3) info.plist ของคุณควรมีสิ่งนี้:

รายการข้อมูลควรมีลักษณะเช่นนี้

4) ใช้แบบอักษรใหม่เหมือนกับแบบอักษรของระบบ:

[UIFont fontWithName:@"font1" ขนาด:16.0];

(สังเกตไม่มี ".ttf" ในชื่อแบบอักษร)

person nurnachman    schedule 28.10.2013
comment
มันใช้งานได้สมบูรณ์แบบ ขอบคุณ! เป็นที่น่าสังเกตว่าคุณไม่จำเป็นต้องแก้ไขซอร์สโค้ดของ plist คุณสามารถเพิ่มสิ่งเหล่านี้ภายใต้คุณสมบัติเป้าหมาย iOS ที่กำหนดเองในบานหน้าต่างข้อมูลของเป้าหมายของแอปของคุณ jednorog.sneakyness.com/image/2Q2O1j1l2E2Z - person Sneakyness; 29.01.2014