使用CGAffineTransform偏斜UIImageView

我试图扭曲一个矩形,所以两个垂直边是倾斜的,但平行,顶部和底部是水平的。

我正在尝试使用CGAffineTransform并已经find这个代码,但是我不知道要在各个部分放什么。

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)) 

虽然说这很容易,但我不知道在不同的地方放什么东西。

我认为图像视图将成为我想要改变的东西,然而什么东西变成了魔法。 和imageRightTop和imageRightBottom。

另外我怎么定义吨。

如果有更彻底的解释,我将不胜感激,因为在大多数情况下,我只find这个解释如何做歪斜矩形。

谢谢

假设您有一个名为imageView的variables,它持有对您的UIImageView的引用。
我写了一个小样本来演示如何得到这个行为。 这段代码做的是创build一个新的CGAffineTransformmatrix。 该matrix与标识转换matrix具有相同的值,但有一个例外:位置[2,1]处的值。 该值由CGAffineTransformMake函数的c参数控制,并控制沿x轴的剪切。 您可以通过设置shearValue来更改剪切量。

代码:

 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]; 

以下是shearTransform外观:

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