2014-05-11 3 views
2

내가 (아이폰)이 코드를 실행하면 :사용자 친화적 인 UIFont`fontNamesForFamilyName :`

... 
Font Family: Georgia 
      Georgia-BoldItalic 
      Georgia-Bold 
      Georgia-Italic 
      Georgia 
Font Family: Helvetica Neue 
      HelveticaNeue-BoldItalic 
      HelveticaNeue-Light 
      HelveticaNeue-Italic 
      HelveticaNeue-UltraLightItalic 
      HelveticaNeue-CondensedBold 
      HelveticaNeue-MediumItalic 
      HelveticaNeue-Thin 
      HelveticaNeue-Medium 
      HelveticaNeue-ThinItalic 
      HelveticaNeue-LightItalic 
      HelveticaNeue-UltraLight 
      HelveticaNeue-Bold 
      HelveticaNeue 
      HelveticaNeue-CondensedBlack 
Font Family: Gill Sans 
      GillSans 
      GillSans-Italic 
... 

당신은 각 글꼴 가족을 볼 수 있습니다

NSArray *names = [UIFont familyNames]; 
NSLog(@"Font FamilyNames"); 
for (NSString *name in names) { 
    NSLog(@"Font Family: %@",name); 
    NSArray *fontFaces = [UIFont fontNamesForFamilyName:name]; 
    for (NSString *fname in fontFaces) { 
     NSLog(@"    %@",fname); 
    } 
} 

을 나는이 출력 (요약 된)를 얻을 다양한 글꼴을 가지고 있지만 글꼴 이름은 사용자 친화적 인 이름입니다. 예를 들어, 텍스트 편집기는 더 나은 방법을 제시한다

TextEdit presenting font names in a respectable way

어떻게 안정적인 방법으로는 각 글꼴의 이름을 가져 (이것은 모든 글꼴, iOS에서 아직 사용할 수없는 경우에도 글꼴에서 작동 의미) 할 수 있습니다 TextEdit과 같은가요?

마음에 오는 유일한 것은 에 Condensed BoldHelveticaNeue-UltraLightItalicHelveticaNeue-CondensedBold를 돌려, 각각의 폰트 페이스 명을 구문 분석하는 것입니다.

Font Family: Bodoni 72 
      BodoniSvtyTwoITCTT-Book 
      BodoniSvtyTwoITCTT-Bold 
      BodoniSvtyTwoITCTT-BookIta 
: 그러나 ... 텍스트 편집기가 HelveticaNeue-UltraLightItalicUltraLight Italic하지 제시하고, 나는이 방법이 모든 글꼴 작동 확실하지 않다 나의 생각과 잘 작동하지 않을 것입니다 글꼴

예를 알 수 있습니다

(Bodoni 72! = BodoniSvtyTwoITCTT)

Font Family: Times New Roman 
      TimesNewRomanPS-BoldItalicMT 
      TimesNewRomanPSMT 
      TimesNewRomanPS-BoldMT 
      TimesNewRomanPS-ItalicMT 

(Times New Roman! = TimesNewRomanPS 어떤 그 MT와이야?)

기타 문제 : 글꼴 이름에 Regular이 포함되어 있지 않지만 사용자가 옵션에서 볼 수있는 것으로 기대됩니다 (TextEdit 스크린 샷 참조).

+0

Hi Alex, 이 문제에 대한 좋은 해결책을 찾았습니까? 나는 똑같은 문제가 있으며, 파싱에 대한 언급은 한계가 있음을 언급합니다. –

+0

@FreekSanders 불행히도, 아니요, 나는 파싱하지 않고 그대로 이름을 남겨야했습니다 ... – Alex

+0

빠른 응답에 감사드립니다. 나는 또한 그대로 이름을 남겨두고있다. –

답변

0

HelveticaNeue (Without - Anything) = 일반.

MT = 모노 타입

참조 : http://www.fonts.com/support/faq/lt-mt-ef-abbreviations

방법 기본적으로 iOS에서 사용할 수없는 글꼴을 사용하는?

    당신은 당신의 리소스 폴더에 글꼴 파일은 다음
  1. 당신이 코드를 아래처럼 새로운 사용자 정의 글꼴을 사용 할 수 있습니다 PLIST에게

  2. 드래그 config (설정) 할 필요가
  3. : -

    [self.activateBtn.titleLabel setFont: 
           [UIFont fontWithName:@"ProximaNova-Regular" size:15]]; 
    

자세한 내용은 다음 페이지를 참조하십시오. Use custom fonts in iPhone App

+0

내 앱에 맞춤 글꼴을 삽입하는 데 실제로 * 필요하지 않습니다.내가하고 싶은 일은 모든 글꼴에서 작동하는 각 글꼴의 사용자 친숙한 이름을 사용하는 것뿐입니다. 그리고 그것에 대해, 당신은 문자열을 파싱하는 것이 좋습니다? 그건 아주 안정적인 소리하지 않습니다 ... – Alex

+1

사용자가 글꼴을 선택할 수있는 응용 프로그램에서 일하고 있습니까? 그렇다면 문자열을 구문 분석하는 것이 유일한 방법이라고 생각합니다. 또한 사용자의 글꼴 유형을 제한 할 수도 있습니다. 사용자 정의 글꼴을 사용하고있는 우리에게는 사용자가 친숙하지 않아도 글꼴 이름이 중요하지 않다고 생각합니다. 사용자가 이름을 볼 수 없기 때문입니다. – Ricky

+0

'사용자가 글꼴을 선택할 수있게 해주는 앱으로 작업하고 있습니까? ': 예, 있습니다. 고마워요, 구문 분석 아이디어를 시도해 보겠습니다. – Alex