대부분의 경우 작동하는 코어 텍스트를 사용하여 사용자 정의 TTF 글꼴 (scheherazade)로 iOS 응용 프로그램에서 아랍어 텍스트를 렌더링하려고합니다. 그러나 CTFrame 가장자리의 특정 글리프가 삭제됩니다 .CTFrame 가장자리에 글리프 놓기
프레임 크기를 조정하여 프레임의 내부에 드롭 글리프가 나타나면 해당 프레임이 정확히 표시되므로 CTFrameDraw 내부에서 문제가 발생했다고 생각됩니다.
또한 부착CGContextRef context = UIGraphicsGetCurrentContext();
// Flip the coordinate system
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, v.textFrame.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGMutablePathRef path = CGPathCreateMutable(); //1
CGPathAddRect(path, NULL, v.textFrame);
CGFloat minLineHeight = 60.0;
CGFloat maxLineHeight = 60.0;
CTTextAlignment paragraphAlignment = kCTRightTextAlignment;
CTLineBreakMode lineBrkMode = kCTLineBreakByWordWrapping;
CTParagraphStyleSetting setting[4] = {
{kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), ¶graphAlignment},
{kCTParagraphStyleSpecifierMinimumLineHeight, sizeof(CGFloat), &minLineHeight},
{kCTParagraphStyleSpecifierMaximumLineHeight, sizeof(CGFloat), &maxLineHeight},
{kCTParagraphStyleSpecifierLineBreakMode, sizeof(CTLineBreakMode), &lineBrkMode}
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(setting, 4);
NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:
(id)v.arabicFont, (id)kCTFontAttributeName,
paragraphStyle, (id)kCTParagraphStyleAttributeName,
nil];
CFRelease(paragraphStyle);
NSAttributedString* attString = [[[NSAttributedString alloc]
initWithString:v.verseText attributes:attr] autorelease]; //2
CTFramesetterRef framesetter =
CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attString); //3
CTFrameRef frame =
CTFramesetterCreateFrame(framesetter,
CFRangeMake(0, [attString length]), path, NULL);
CTFrameDraw(frame, context); //4
CFRelease(frame); //5
CFRelease(path);
CFRelease(framesetter);
내가 직면하고있는 문제를 보여주는 스크린 샷입니다 : 아래는 내가 아랍어 텍스트를 렌더링하는 데 사용하고 코드입니다. 어떤 도움이라도 대단히 감사 할 것입니다. 감사.
무효 : http://stellarbeacon.com.au/invalid.png 유효한 : 올바른 프레임 크기를 결정하는 관련 CoreText에서 몇 가지 버그가 있습니다 http://stellarbeacon.com.au/valid.png
다른 글꼴에도 동일한 문제가 있습니다. 당신이 이미 대답을 찾았다면 여기를보십시오 : http://stackoverflow.com/questions/13755757/ctframedraw-cut-some-fonts – Coolant
@Coolant : 고맙게도 어제 나는 약간 다른 글꼴로 문제가 사라질 것이라고 생각했습니다. , 나는 당신의 경우에 적용 할 지 모르겠다. 아래의 의견을 읽으십시오. –