¿Cómo puedo crear la curva UIView / UIImageView no con animation?

¿Cómo puedo crear una uiview que se vea así y también su subvista get el mismo efecto? Después de search en la web, descubrí que CALayer lo puede hacer, pero no tengo suficientes conocimientos sobre esto. Por favor, ayúdame. Gracias por adelantado.

Cómo

Hasta mis niveles y mi comprensión, he hecho algunas codificaciones que pueden ser útiles para ti … Si no, ignóralo …

Primero crea una vista personalizada desde un file nuevo

A continuación, necesitamos cambiar la class de la propiedad View ViewController desde UIView a nuestra class CustomView. Abra MainStoryboard.storyboard y en el esquema del documento, click el ícono Ver. Luego, abra el inspector de identidad (opción + command + 3) y cambie al nombre de la class a CustomView.

luego agregue este código en Vista personalizada

- (void)drawRect:(CGRect)rect { // Drawing code UIImage *imageRecipe =[UIImage imageNamed:@"statement_card_1.png"]; UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0 ,0 ,290, 200)]; imgView.image = imageRecipe; [self addSubview:imgView]; CGPoint secondPoint = CGPointZero; CGPoint point1 = CGPointZero; CGPoint initial = CGPointZero; UIBezierPath *aPath = [UIBezierPath bezierPath]; initial = CGPointMake(30, 60); [aPath moveToPoint:initial]; CGPoint point = CGPointMake(290, 60); CGPoint centerPoint = CGPointMake(point.x/2, -10); [aPath addQuadCurveToPoint:point controlPoint:centerPoint]; secondPoint = CGPathGetCurrentPoint(aPath.CGPath); [aPath addLineToPoint:CGPointMake(secondPoint.x, 200.0)]; point1 = CGPathGetCurrentPoint(aPath.CGPath); CGPoint p = CGPointMake(initial.x,point1.y); CGPoint cp = CGPointMake(point1.x/2 ,point1.y/2 + 30); [aPath addQuadCurveToPoint:p controlPoint:cp]; [aPath addLineToPoint:CGPointMake(initial.x, secondPoint.y)]; [aPath closePath]; [aPath stroke]; CAShapeLayer *maskLayer = [CAShapeLayer layer]; maskLayer.frame = imgView.bounds; maskLayer.path = aPath.CGPath; imgView.layer.mask = maskLayer; } 

No sucederá sin OpenGL u otro motor. No puedes transformar un CALayer de esa manera. La idea básica de una capa es que es un avión.

¿Tal vez lo fake con una image y algunas vistas giradas o algo así?