使用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一个新的CGAffineTransform
matrix。 该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]