iOS UIBezierPath que sigue la forma de una fuente

Soy un novato de iOS. ¿Cómo hago que un UIBezierPath que siga un alfabeto diga "B"? El objective es rastrear los toques en esta ruta.

Gracias por adelantado.

CoreText.framework proporciona methods para get la ruta de la palabra

ver http://www.codeproject.com/Articles/109729/Low-level-text-rendering

Ejemplo de código creado por Ole Begemnn. Lo sentimos, olvidé la URL de descarga para la demostración llamada AnimatedPath.

CGMutablePathRef letters = CGPathCreateMutable(); CTFontRef font = CTFontCreateWithName(CFSTR("Helvetica-Bold"), 72.0f, NULL); NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys: (id)font, kCTFontAttributeName, nil]; NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Hello World!" attributes:attrs]; CTLineRef line = CTLineCreateWithAttributedString((CFAttributedStringRef)attrString); CFArrayRef runArray = CTLineGetGlyphRuns(line); // for each RUN for (CFIndex runIndex = 0; runIndex < CFArrayGetCount(runArray); runIndex++) { // Get FONT for this run CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runArray, runIndex); CTFontRef runFont = CFDictionaryGetValue(CTRunGetAttributes(run), kCTFontAttributeName); // for each GLYPH in run for (CFIndex runGlyphIndex = 0; runGlyphIndex < CTRunGetGlyphCount(run); runGlyphIndex++) { // get Glyph & Glyph-data CFRange thisGlyphRange = CFRangeMake(runGlyphIndex, 1); CGGlyph glyph; CGPoint position; CTRunGetGlyphs(run, thisGlyphRange, &glyph); CTRunGetPositions(run, thisGlyphRange, &position); // Get PATH of outline { CGPathRef letter = CTFontCreatePathForGlyph(runFont, glyph, NULL); CGAffineTransform t = CGAffineTransformMakeTranslation(position.x, position.y); CGPathAddPath(letters, &t, letter); CGPathRelease(letter); } } } CFRelease(line); UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:CGPointZero]; [path appendPath:[UIBezierPath bezierPathWithCGPath:letters]]; CGPathRelease(letters); CFRelease(font); 

reemplace "Hello World!" con "The Word you need".

Para los dibujos en Quartz2D, uso una aplicación OSX llamada PaintCode ( http://www.paintcodeapp.com/ ). Básicamente es una aplicación de dibujo vectorial que generó el código de cuarzo del dibujo que haces. Es bastante impresionante en realidad. Hay una aplicación similar llamada Opacity pero no la he probado.

Con tales aplicaciones, podría tener una B en el background como guía y dibujar su BezierPath sobre ella. Una vez que haya terminado, simplemente copie el código generado y péguelo en su proyecto.

Espero eso ayude.