Search code examples
iphonecalayer

iPhone skew a CALayer


I'm a beginner and I am doing some exercises to familiarize myself with CALayer ...

I just want to know how to "incline" (or skew) a CALayer 45° angle ?

Thank you.


Solution

  • You could do this but you would have to mess with the layer's transform property, which is a struct CATransform3D. You're going to have to do some vector math to do this, as you . See the compute_transform_matrix(...) function from this answer for more details.

    You'll want to do something like this:

    CGRect r = layer.bounds;
    layer.transform = compute_transform_matrix(r.origin.x,    r.origin.y,                 r.size.width,                 r.size.height,
                                               r.size.height, r.origin.y,                 r.size.width + r.size.height, r.origin.y,
                                               r.origin.x,    r.origin.y + r.size.height, r.size.width,                 r.origin.y );
    

    Check my math on this. It should be right.