2015-02-06 6 views
10

iOS7 이상인 경우 - (void)drawWithRect:(CGRect)rect options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context을 사용하여 문자열 크기를 계산할 수 있지만 NSStringDrawingOptions enum의 설명과 혼동 스럽습니다.NSStringDrawingOptions 항목의 의미가

NSStringDrawingUsesLineFragmentOrigin

그것은 지정 수단 원점 광고 단편 기원하지 기준선 기원이다. 그러나 라인 조각의 기점과 기점의 의미는 무엇입니까? 그냥 WWDC 2013 세션 (220) (고급 텍스트 레이아웃 및 텍스트 키트 효과)

라인 조각의 기원은 파란색 점을 의미 할 경우 95 페이지의 PDF, 무엇을 기준 기원 같은

?

답변

9

From the official documentation

NSStringDrawingUsesLineFragmentOrigin이 옵션에 지정된 경우

토론은, 그것이 적합하도록 필요에 따라 문자열 텍스트를 랩합니다. 문자열이 너무 커서 사각형 안에 완전히 들어 가지 않을 경우 메서드는 글꼴의 크기를 조정하거나 문자열 간격을 조정하여 지정된 범위 내에서 문자열을 맞 춥니 다. NSStringDrawingUsesLineFragmentOrigin이 옵션에 지정되지 않은 경우

는 사각형의 기원 유일한 줄의 기준선이다. 텍스트 은 사각형 내부에없고 사각형 위에 표시됩니다. 예제의 경우 0,0에서 시작하는 사각형을 지정하고 문자열 'juxtaposed'를 그릴 경우 'j'및 'p'의 자손 만 이 표시됩니다. 텍스트의 나머지 부분은 직사각형의 상단 가장자리에 있습니다.

이 방법은 속성 문자열 자체에 지정된 속성을 사용하여 선을 그립니다. 문자열에 줄 바꿈 문자가있는 경우 해당 문자가 적용되고 후속 텍스트는 이 시작점 아래의 다음 줄에 배치됩니다.

특별 고려 사항이 방법은 기본값이 인 기준선을 사용하므로 문자열을 단일 행으로 렌더링합니다. 여러 줄에 문자열을 렌더링하려면 옵션에 NSStringDrawingUsesLineFragmentOrigin을 지정하십시오.