在Objective C中偏斜图像

时间:2014-06-23 22:15:49

标签: ios objective-c cgaffinetransform skew

我想在目标C中扭曲图像,如下图所示,是否可以使用CGAffineTransform?我不确定如何实现这样的效果,到目前为止只能旋转或缩放。

skew img

1 个答案:

答案 0 :(得分:2)

您可以使用图层的transform属性来执行此操作,因为图层的变换是3D变换。在下面的代码中,图层的锚点移动到左边缘,然后应用3D变换。请注意,self.anim3DView只是标准UIImageView

if ( self.anim3DView.layer.anchorPoint.x > 0.0 )
{
    CGPoint position = self.anim3DView.layer.position;
    position.x -= self.anim3DView.layer.bounds.size.width / 2.0;
    self.anim3DView.layer.anchorPoint = CGPointMake( 0.0, 0.5 );
    self.anim3DView.layer.position = position;
}

CATransform3D t = CATransform3DIdentity;
t.m34 = -0.005;
t = CATransform3DRotate( t, M_PI / 6.0, 0.0, 1.0, 0.0 );
self.anim3DView.layer.transform = t;