2011-07-06 8 views
22

Cuando se mueve un poco de código de cacao a Cocoa Touch Me ha decepcionado al descubrir que UIBezierPath falta el "Elementos Acceso de un camino" métodos:Haciendo UIBezierPath más como NSBezierPath con elementCount y elementAtIndex

– elementCount 
– elementAtIndex: 
– elementAtIndex:associatedPoints: 
– removeAllPoints 
– setAssociatedPoints:atIndex: 

La única manera de obtener en estos elementos en Cocoa Touch parece ser a través de CGPathApply. Antes de intentar recrear esto como una subclase o categoría de UIBezierPath, me preguntaba si esto ya se había hecho. ¿Alguien tiene una idea si algo como esto ya está disponible?

+0

No estoy seguro, pero esto podría ser un poco útil https://github.com/kennytm/iphone-private-frameworks/blob/master/UIKit/UIBezierPath.h – iHS

Respuesta

1

Hice un puerto en https://github.com/seivan/UIBezierPathPort pero es con Swift. Tiene un conjunto de pruebas y documentación. Funciona a partir del Beta 5.

Técnicamente, debería poder usar Swift en un proyecto Obj-C.

Dejarme saber cómo te gusta.

1

Me he topado con el mismo problema hace un par de meses y no pude encontrar nada disponible en ese momento. (La verdad sea dicha, ya que ir por la ruta CGPathApply no fue tan malo para mis necesidades, no parecía muy difícil de ser honesto).

La función de aplicador se llama para cada CGPathElement en el CGPath, un elemento compuesto consiste en una CGPathElementType y un C-array de CGPoints.

Desde un CGPathElementType es una enumeración con sólo cinco valores diferentes

enum CGPathElementType { 
    kCGPathElementMoveToPoint, 
    kCGPathElementAddLineToPoint, 
    kCGPathElementAddQuadCurveToPoint, 
    kCGPathElementAddCurveToPoint, 
    kCGPathElementCloseSubpath 
}; 

No es necesario escribir mucho código para hacer (control) señalan la manipulación/inspección de un camino. Sin embargo, tener la misma interfaz disponible hubiera sido agradable.

Cuestiones relacionadas