2011-04-22 7 views
0

무한히 큰 사각형에 배치 할 때 경계 사각형을 계산할 고유 문자열이 많습니다.NSLayoutManager를 사용하여 문자열의 경계 사각형 가져 오기

// setup NSTextStorage and its NSLayoutManager, NSTextContainer 
... 

forall (NSAttributedString *astring in ...) 
{ 
    // put string into textstorage 
    [textStorage setAttributedString:astring]; 

    // trigger glyph generation and layout 
    [textContainer setContainerSize: NSMakeSize (CGFLOAT_MAX, CGFLOAT_MAX)]; 
    [layoutManager ensureLayoutForTextContainer: textContainer]; 

    // finally get the bounding box 
    NSRect boundingBox = [layoutManager usedRectForTextContainer: textContainer]; 
    ... 
} 

문제는이다 : 그것은 문자열이 그려 질 필요가 없다는 것을 고려하여 계산을 빠르게 할 수 있습니다 현재 내가 하나의 NSTextStorage/NSLayoutManager 및 루프는 사각형을 수집, 모든 문자열을 통해 사용 ? 저는 사각형의 너비와 높이에만 관심이 있습니다.

답변

0

몇 일간의 테스트를 거친 후 자신이 대답했습니다. 아쉽게도 레이아웃 관리자를 사용하는 것이 더 빠릅니다. CoreText를 사용하는 것은 약 두 배 빠르지 만 CoreText 자체는 약간의 문제를 가지고 있습니다.

관련 문제