sesgando una UIImageView usando CGAffineTransform

Estoy intentando inclinar un rectángulo para que los dos lados verticales estén inclinados pero paralelos y la parte superior e inferior estén horizontales.

Estoy tratando de usar CGAffineTransform y he encontrado este código, pero no estoy averiguando qué poner en las diferentes partes.

imageView.layer.somethingMagic.imageRightTop = (CGPoint){ 230, 30 }; imageView.layer.somethingMagic.imageRightBottom = (CGPoint){ 300, 150 }; #define CGAffineTransformDistort(t, x, y) (CGAffineTransformConcat(t, CGAffineTransformMake(1, y, x, 1, 0, 0))) #define CGAffineTransformMakeDistort(x, y) (CGAffineTransformDistort(CGAffineTransformIdentity, x, y)) 

aunque se dice que es fácil, no sé qué poner en los diferentes lugares.

Supongo que la vista de la image sería mi image y quiero cambiar, sin embargo, lo que entra en algo mágico. y imageRightTop e imageRightBottom.

También cómo defino t.

Si hay una explicación más completa lo agradecería, ya que en la mayoría de los casos solo encontré esto como la explicación de qué hacer para inclinar un rectángulo.

Gracias

Supongamos que tiene una variable denominada imageView contiene una reference a su UIImageView .
Escribí una pequeña muestra para demostrar cómo podría get este comportamiento. Lo que hace este código es crear una nueva matriz CGAffineTransform . Esta matriz tiene los mismos valores que la matriz de transformación de identidad con una exception: el valor en la location [2,1]. Este valor está controlado por el CGAffineTransformMake c de la CGAffineTransformMake CGAffineTransformMake y controla el corte a lo largo del eje x. Puede cambiar la cantidad de cizallamiento configurando shearValue .

El código:

 CGFloat shearValue = 0.3f; // You can change this to anything you want CGAffineTransform shearTransform = CGAffineTransformMake(1.f, 0.f, shearValue, 1.f, 0.f, 0.f); [imageView setTransform:shearTransform]; 

Y así es como se ve la shearTransform -matrix:

 [1 0 0] [0.3 1 0] [0 0 1]