แบบอักษรของระบบ iPhone


98

ฟอนต์ระบบเริ่มต้นบน iPhone ชื่ออะไร

ฉันต้องการดึงข้อมูลนี้เพื่อปรับแต่งไฟล์UIView.

คำตอบ:


109

เพื่อความพึงพอใจของผู้ใช้ฟอนต์ในทุกหนทุกแห่งอินเทอร์เฟซระบบของ iPhone ใช้ Helvetica หรือตัวแปรดังกล่าว

อินเทอร์เฟซระบบ iPhone, iPhone 3G และ iPhone 3GS ดั้งเดิมใช้ Helvetica ดังที่ได้กล่าวไว้เป็นครั้งแรกโดย DaringFireball ที่ยอดเยี่ยมเสมอ iPhone 4 ใช้แบบอักษรที่ได้รับการปรับปรุงใหม่ที่เรียกว่า "Helvetica Neue" DaringFireball ยังตั้งข้อสังเกตว่าการเปลี่ยนแปลงนี้เกี่ยวข้องกับการแสดงผลของ iPhone 4 มากกว่าระบบปฏิบัติการ iOS 4 และ iPhone รุ่นเก่าที่ใช้ iOS 4 ยังคงใช้ Helvetica เป็นแบบอักษรของระบบ

iPod รุ่นที่วางจำหน่ายก่อน iPhone จะใช้ทั้ง Chicago, Espy Sans หรือ Myriad และใช้ Helvetica หลังจากการเปิดตัว iPhone

จากhttp://www.everyipod.com/iphone-faq/iphone-who-designed-iphone-font-used-iphone-ringtones.html

สำหรับiOS9ได้เปลี่ยนเป็นSan Fransiscoแล้ว โปรดดูhttp://developer.apple.com/fontsสำหรับข้อมูลเพิ่มเติม


6
ปัจจุบันเป็นแบบอักษร Helvetica Neue Regular
ออกัสติน

4
สำหรับ iOS9 ได้เปลี่ยนเป็น San Fransisco แล้ว ดูdeveloper.apple.com/fontsสำหรับข้อมูลเพิ่มเติม
Freek Sanders

103

หากคุณกำลังทำการปรับแต่งแบบเป็นโปรแกรมอย่าฮาร์ดโค้ดแบบอักษรของระบบ การใช้งานUIFont systemFontOfSize:, UIFont boldSystemFontOfSize:และUIFont italicSystemFontOfSize( เอกสารแอปเปิ้ล )

สิ่งนี้มีความเกี่ยวข้องโดยเฉพาะตั้งแต่ iOS 7 ซึ่งเปลี่ยนแบบอักษรของระบบเป็น Helvetica Neue

นี้ได้กลายเป็นซุปเปอร์ที่เกี่ยวข้องโดยเฉพาะอย่างยิ่งตั้งแต่ iOS 9 ที่มีการเปลี่ยนแปลงแบบอักษรของระบบอีกครั้งไปยัง San Francisco


1
ฉันจะไม่เปลี่ยนแบบอักษรของระบบนั่นเป็นความคิดที่ไม่ดี แต่ฉันต้องการมันสำหรับ html บางตัวใน UIWebView
SK9

สิ่งนี้ไม่ได้เปลี่ยนแบบอักษรของระบบเพียงแค่ให้UIFontอินสแตนซ์ของแบบอักษรระบบตามขนาดที่กำหนดและจะส่งคืนแบบอักษรของระบบเสมอโดยไม่คำนึงถึงการอัปเดต iOS ในอนาคต
Adam Wright

แบบอักษรที่ฉันเห็นใน UIWebView ดูไม่เหมือน Helvetica สำหรับฉัน ฉันอาจจะผิด แต่การตั้งค่าแบบอักษรสำหรับมุมมองของฉันทำให้ฉันหมดข้อสงสัย
SK9

"อย่าฮาร์ดโค้ดแบบอักษรของระบบ" เป็นคำแนะนำที่ดีหรือคำแนะนำที่ไม่ดีขึ้นอยู่กับสถานการณ์ ส่วนตัวฉันหวังว่าฉันจะฮาร์ดโค้ดHelvetica... ทำตอนนี้
Dan Rosenstark

เห็นด้วยโดยสิ้นเชิงอย่าฮาร์ดโค้ดโปรด นี่น่าจะเป็นคำตอบที่ถูกต้องสำหรับคำถามนี้
Esteve


12

คุณสามารถใช้

UIFont *systemFont = [UIFont systemFontOfSize:12];
NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);

คำตอบคือ:

สูงสุด iOS 6

 Helvetica Helvetica

iOS 7

.Helvetica Neue Interface .HelveticaNeueInterface-M3

แต่คุณสามารถใช้ Helvetica Neue


1
ใน Swift บน iOS 9 ฉันได้รับ.SFUIText-Regularเป็นsystemFont.familyName
Daniel

@simpleBob เพิ่มเติมเกี่ยวกับเรื่องนั้น: designforhackers.com/blog/apples-new-san-francisco-font
Dan Rosenstark

12

รวดเร็ว

แบบอักษรเฉพาะ

การตั้งค่าแบบอักษรเฉพาะใน Swift ทำได้ดังนี้:

let myFont = UIFont(name: "Helvetica", size: 17)

หากคุณไม่ทราบชื่อคุณสามารถรับรายชื่อแบบอักษรที่มีได้ดังนี้:

print(UIFont.familyNames())

หรือรายการที่ละเอียดยิ่งขึ้นเช่นนี้:

for familyName in UIFont.familyNames() {
    print(UIFont.fontNamesForFamilyName(familyName))
}

แต่แบบอักษรของระบบจะเปลี่ยนจากเวอร์ชันเป็นเวอร์ชันของ iOS ดังนั้นจะเป็นการดีกว่าที่จะรับแบบอักษรของระบบแบบไดนามิก

แบบอักษรของระบบ

let myFont = UIFont.systemFontOfSize(17)

แต่เรามีขนาด hard-coded จะเป็นอย่างไรหากสายตาของผู้ใช้ไม่ดีและต้องการทำให้ตัวอักษรใหญ่ขึ้น แน่นอนคุณสามารถตั้งค่าในแอปของคุณเพื่อให้ผู้ใช้เปลี่ยนขนาดตัวอักษรได้ แต่จะน่ารำคาญหากผู้ใช้ต้องทำสิ่งนี้แยกกันสำหรับทุกแอปในโทรศัพท์ มันจะง่ายกว่าถ้าทำการเปลี่ยนแปลงในการตั้งค่าทั่วไปเพียงครั้งเดียว ...

แบบอักษรแบบไดนามิก

let myFont = UIFont.preferredFont(forTextStyle: .body)

อ่าตอนนี้เรามีแบบอักษรของระบบตามขนาดที่ผู้ใช้เลือกสำหรับรูปแบบข้อความที่เรากำลังใช้งาน นี่เป็นวิธีที่แนะนำในการตั้งค่าแบบอักษร ดูการสนับสนุนประเภทไดนามิกสำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้

ที่เกี่ยวข้อง


8

ฉันไม่แน่ใจว่ามี api สำหรับรับชื่อฟอนต์ระบบเริ่มต้น ฉันจึงได้ชื่อแบบนี้:

    //get system default font
    UILabel *label = [[UILabel alloc] init];        
    fontname = label.font.fontName;
    [label release];

ดูโง่ แต่ได้ผล


17
UIFont * font = [UIFont systemFontOfSize: 12.0]; <! - ได้รับแบบอักษรเริ่มต้น
Steven Baughman

มีวิธีการที่ง่ายกว่า .. แต่ +1 สำหรับการคิดนอกกรอบ
ษณบฎา

ดูดีขึ้น: P [UIFont systemFontOfSize:[UIFont labelFontSize]];ดูคำตอบของฉันด้านล่าง
Anton Gaenko

3

นี่คือการปรับปรุงบางส่วนเพื่อรองรับiOS 7 Dynamic Font Sizeตอนนี้มีแล้ว

สำหรับแอปใด ๆ และทั้งหมดที่รองรับ "ประเภทไดนามิก" ผู้ใช้สามารถเลือกขนาดตัวอักษรใน iOS 7 ที่ใช้งานได้ทั้งระบบเพียงไปที่ส่วน "ทั่วไป" ใน "การตั้งค่า" และเลือก "ขนาดตัวอักษร"

UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

และรายการค่าคงที่คำอธิบายโดยละเอียดอยู่ที่นี่

NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;

3

หมวดหมู่UIFontSystemFontsสำหรับUIFont ( UIInterface.h ) มีขนาดที่กำหนดไว้ล่วงหน้าที่สะดวกหลายขนาด

@interface UIFont (UIFontSystemFonts)
 + (CGFloat)labelFontSize;
 + (CGFloat)buttonFontSize;
 + (CGFloat)smallSystemFontSize;
 + (CGFloat)systemFontSize;
@end 

ฉันใช้สำหรับข้อความแชท (ป้ายกำกับ) และใช้งานได้ดีเมื่อฉันต้องการขนาดของบล็อกข้อความ

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

ขอให้สนุกกับการเขียนโค้ด!


3
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];

สิ่งนี้จะให้แบบอักษรของระบบที่มีขนาดแบบอักษรเริ่มต้นของระบบที่ใช้กับข้อความป้ายกำกับโดยค่าเริ่มต้น


2

รวดเร็ว

คุณควรใช้ค่าเริ่มต้นของระบบเสมอและไม่ยากที่จะเข้ารหัสชื่อแบบอักษรเพราะ Apple สามารถเปลี่ยนแบบอักษรเริ่มต้นได้ตลอดเวลา

มีสองแบบอักษรเริ่มต้นของระบบมี (ปกติ, ตัวหนา , ตัวเอียง ) ที่มีขนาดแตกต่างกัน (ป้ายปุ่มอื่น ๆ ):

let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)

โปรดทราบว่าขนาดตัวอักษรเริ่มต้นขึ้นอยู่กับมุมมองเป้าหมาย (ป้ายกำกับปุ่มอื่น ๆ )

ตัวอย่าง:

let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)

0
  1. ต้องดาวน์โหลดไฟล์. ttf

  2. เพิ่มไฟล์. ttf ภายใต้ทรัพยากรสำเนาบันเดิลตรวจสอบอีกครั้งว่ามีการเพิ่มไฟล์ ttf ภายใต้ทรัพยากรหรือไม่

  3. ใน info.pllist ให้เพิ่มชื่อไฟล์ ttf ตามที่เป็นอยู่

  4. ตอนนี้เปิดสมุดแบบอักษรเพิ่มไฟล์. ttf ในสมุดแบบอักษรเลือกไอคอนข้อมูลที่นั่นคุณจะพบชื่อตัวอักษร

  5. ตอนนี้ให้ชื่อ Postscript แทนชื่อฟอนต์


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.