2010-04-23 3 views
4

Shark는이 방법이 엄청난 성능 저하를 보임을 보여줍니다. 내 테이블보기에서 80 %처럼. 내가하는 모든 작업은 셀당 두 개의 레이블 (페이지 당 총 8 개)을 그립니다. 스크롤하는 동안. 나는 drawInRect : 그걸로.-drawInRect보다 빠릅니다 : withFont : lineBreakMode : alignment :?

더 좋은 방법이 있습니까? 어떤 레이어에 직접 드로잉하는 것과 같은가요? '많은 비 영어 문자에 대한

CGContextSetStrokeColorWithColor(context, strokeColor); 
CGContextSetFillColorWithColor(context, strokeColor); 

CGContextSelectFont(context, "Helvetica", fontSize, kCGEncodingMacRoman); 
CGContextSetTextDrawingMode(context, kCGTextFill); 
CGContextSetTextPosition(context, 0.0f, round(fontSize/4.0f)); 
CGContextShowText(context, [text cStringUsingEncoding:NSMacOSRomanStringEncoding], strlen([text cStringUsingEncoding:NSMacOSRomanStringEncoding]));  

그러나, 아이폰 돋움 글꼴 맥 로마 인코딩이없는 문자, 그래서 나는 당신을 생각 :

답변

5

당신은 빠른 드로잉을 할 수있는 다음과 같은 코드를 사용하여 iPhone OS 3.2에서 코어 텍스트를 사용하기를 원하지 않는 한 NSString 드로잉 메서드로 다시 붙어 있습니다.

확인하고 문자열이 맥 로마 문자 집합을 사용하여 표현 될 수 있는지, 같은 것을 사용하려면 다음

if ([text canBeConvertedToEncoding:NSMacOSRomanStringEncoding]) 
+0

는 헬 베티 -systemFontOfSize에서 사용하는 글꼴입니다 : – dontWatchMyProfile

+0

왜 round (fontSize/4.0f)입니까? – dontWatchMyProfile

+0

@mystify - 예, 저는 Helvetica가 iPhone의 기본 시스템 글꼴이라고 생각합니다. 멀리까지 간격, 그게 내가 NSString 그리기 방법으로 이런 식으로 그려진 텍스트의 기준 위치를 일치하는 데 필요한 찾은 것입니다. –

관련 문제