Mit NSString ist drawAtPoint Methode statt CGContextShowGlyphsAtPoint Probleme

In meine app, die ich versuche zu Darstellung von text entlang eines Pfades; dies ist in Ordnung für die meisten Zeichen, aber nicht für Japanisch (oder was auch nicht-mac-Roman). Ich habe empfohlen, um [NSString drawAtPoint], die zeigt das richtige Zeichen in meinem CATiledLayer, aber Sie verschwinden nach etwa 5 Sekunden. In dieser Zeit habe ich einen zoom von der Ebene und Sie korrekt skaliert, aber Sie scheinen nicht zu erhalten, engagiert sich für die CATiledLayer wie der rest des Textes in der Regel ist.

Bevor ich Rendern, damit ich überprüfen Sie die Zeichenfolge, und entscheiden Sie, ob Sie nicht renderable. Wenn ich dabei bin, haben Probleme, ich benutze drawAtpoint statt:

if (!isFullyDisplayable)
 {
  CGContextShowGlyphsAtPoint(context, pt.x, pt.y, realGlyph, 1);
 }
 else {
  //fall back on less flexible font rendering for difficult characters

  NSString *b = [gv text];
  NSString *c = [b substringWithRange:NSMakeRange(j,1)];

  [c drawAtPoint:pt withFont:[UIFont fontWithName:@"Helvetica-Bold" size:16.0]];


 }

Hat jemand irgendwelche Hinweise, warum der text verschwindet?

Sobald die drawAtPoint ist meine debug-Ausgabe wird überflutet mit:

<Error>: CGContextGetShouldSmoothFonts: invalid context
<Error>: CGContextSetFont: invalid context
<Error>: CGContextSetTextMatrix: invalid context
<Error>: CGContextSetFontSize: invalid context
<Error>: CGContextSetTextPosition: invalid context
<Error>: CGContextShowGlyphsWithAdvances: invalid context

Also ich vermute, es ist etwas zu tun mit meinem context-management, aber ich hatte angenommen, dass wenn das im selben Ort wie ich CGContextShowGlyphsAtPoint sollte es den richtigen Kontext bereits?

InformationsquelleAutor davbryn | 2010-02-23
Schreibe einen Kommentar