2014-02-28 2 views
1

아이폰 OS는 당신이 당신에게 (그들이 설정> 일반> 텍스트 크기 설정 및 소형에서 대형까지 7 개 가능한 값이) 사용자의 선택 동적 유형의 텍스트 크기를 말할 것이다 전화를하는 방법이있다.어떤 메소드를 호출합니까?

이이 일곱 옵션을 설명 일곱 개 문자열 값 중 하나를 반환 당신이 할 수있는 API 호출은,하지만 난 그것을 찾을 수 없습니다. 이전에 사용했던 것처럼 그것이 존재한다는 것을 알고 있지만 어디서나 찾을 수는 없습니다.

참고 : 나는하지이 방법에 대해 이야기하고있다하십시오 UIFont을 반환

[UIFont preferredFontForTextStyle:UIFontTextStyleBody] 

합니다.

답변

4

발견 : [[UIApplication sharedApplication] preferredContentSizeCategory] '[[UIApplication sharedApplication] preferredContentSizeCategory]`:

CGFloat fontSize = 17; 
NSString *textSize = [[UIApplication sharedApplication] 
    preferredContentSizeCategory]; 
if ([textSize isEqualToString:@"UICTContentSizeCategoryXS"]) { 
    fontSize = 10; 
} else if ([textSize isEqualToString:@"UICTContentSizeCategoryS"]) { 
    fontSize = 13; 
} else if ([textSize isEqualToString:@"UICTContentSizeCategoryM"]) { 
    fontSize = 15; 
} else if ([textSize isEqualToString:@"UICTContentSizeCategoryL"]) { 
    // "Normal" or middle size - use designed font sizes 
    fontSize = 17; 
} else if ([textSize isEqualToString:@"UICTContentSizeCategoryXL"]) { 
    fontSize = 24; 
} else if ([textSize isEqualToString:@"UICTContentSizeCategoryXXL"]) { 
    fontSize = 32; 
} else if ([textSize isEqualToString:@"UICTContentSizeCategoryXXXL"]) { 
    fontSize = 48; 
} 
+5

실제로 이러한 문자열 리터럴에 대한 상수가 있습니다 (예 : UIContentSizeCategoryLarge). –

+0

이 접근법은 크기가 iOS의 한 버전에서 다른 버전으로 임의로 변경 될 수 있다는 점에서 다소 취약합니다 (이는 이전에 발생했습니다). –

+0

@JonTrauntvein : 나는이 접근법이 기술적으로 "부서지기 쉬운"것인지 아닌지에 관계없이 이러한 임의적 인 변화로부터 내 앱을 격리한다고 주장한다. – MusiGenesis

1

사실, this page에 따라, 그 방법 것 같다 :

,이 기능을 활용하는 사용자가 텍스트 크기 설정을 변경할 때 전송받을 알림에 응답 할 준비를하십시오. 그런 다음 UI에서 사용할 새 글꼴을 얻기 위해 UIFont 방법 preferredFontForTextStyle를 사용합니다. iOS 7은 모든 크기에서 최대 가독성을 위해이 방법으로 지정된 글꼴을 최적화합니다. 텍스트 스타일 및 앱에서 글꼴 사용에 대한 자세한 내용은 iOS 용 텍스트 프로그래밍 가이드의 "텍스트 스타일"을 참조하십시오.

또한, +[UIFont preferredFontForTextStyle:]에 대한 문서는 명시 적으로 반환 말한다 "텍스트 스타일과 관련된 사용자의 선택한 내용 크기 카테고리에 적절하게 조정 글꼴의 인스턴스를." 즉, 반환 UIFont 이미 사용자의 기본 설정으로 조정됩니다.

당신은 -[UIFont pointSize]를 사용하여 UIFont에서 글꼴 크기를 얻을 수 있습니다.

+0

아니, 내가 찾고있는 방법은 다음과 같습니다 다음은이 속성을 얻을 당신이 좋아하는 크기 글꼴의 어떤 규모로 돌려하는 데 사용할 수있는 몇 가지 코드가있다. – MusiGenesis

관련 문제