Tomará mucho tiempo de prueba y error, lo hice rápidamente solo para darle una idea de cómo crear formas usando Bezier Paths. A continuación se muestra código de ejemplo para crear una forma cuadrada que rápidamente me creado
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
[aPath moveToPoint:CGPointMake(50.0, 50.0)];
// Draw the lines.
[aPath addLineToPoint:CGPointMake(100.0, 50.0)];
[aPath addLineToPoint:CGPointMake(100.0, 100.0)];
[aPath addLineToPoint:CGPointMake(50.0, 100.0)];
[aPath closePath];
CAShapeLayer *square = [CAShapeLayer layer];
square.path = aPath.CGPath;
[self.view.layer addSublayer:square];
Si tuviera más tiempo, podría crear la imagen, pero lo hizo tan rápidamente como no tienen demasiado tiempo. No es demasiado difícil de usar una vez que conoces cómo se hacen los puntos. Le tomará un montón de prueba y error para crear esta forma, pero use el código que proporcioné como base para crear formas usando las rutas de Bezier. Necesitarás crear muchos más puntos para terminar con la forma que tienes en mente.
También recomendaría mirar guía Manzanas desarrollador para la creación de formas irregulares
http://developer.apple.com/library/ios/#documentation/2ddrawing/conceptual/drawingprintingios/BezierPaths/BezierPaths.html
En particular, hacia los "Adición de curvas a la ruta" para la comprensión de cómo crear curvas y agregarlos a su imagen . Necesitará que con el fin de crear el rompecabezas pieza del rompecabezas de forma que usted está tratando de crear
EDIT:
Pruebe este método
- (void) setClippingPath:(UIBezierPath *)clippingPath : (UIImageView *)imgView;
{
if (![[imgView layer] mask])
[[imgView layer] setMask:[CAShapeLayer layer]];
[(CAShapeLayer*) [[imgView layer] mask] setPath:[clippingPath CGPath]];
}
El método anterior se llevará a un trazado Bézier y un ImageView y luego aplica la ruta Bezier a esa particular imageView. Hará el recorte también. Me tomará muchas pruebas y errores, me imagino que para obtener la forma correcta, puede ser difícil y frustrante crear formas complejas a veces.
ejemplo rápido de la aplicación de este código
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
[aPath moveToPoint:CGPointMake(0.0, 0.0)];
// Draw the lines.
[aPath addLineToPoint:CGPointMake(50.0, 0.0)];
[aPath addLineToPoint:CGPointMake(50.0, 50.0)];
[aPath addLineToPoint:CGPointMake(0.0, 50.0)];
[aPath closePath];
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bar.png"]];
imgView.frame = CGRectMake(0, 0, 100, 100);
[self setClippingPath:aPath :imgView];
[self.view addSubview:imgView];
hace justo rápidamente una plaza fuera de la parte superior izquierda de la imagen. Si, por ejemplo, tiene una imagen cuadrada, puede recorrer el ancho y el alto de la imagen, recortar en cuadrados separados usando el código anterior y devolverlos individualmente. Crear una pieza de rompecabezas mucho más complicada, pero espero que esto ayude
Mire mi respuesta aquí http://stackoverflow.com/questions/13153223/how-to-crop-the-image-using-uibezierpath/ 15353848 # 15353848 –