How to “rotate” a layer/view (e.g. just like you w

2020-05-23 11:58发布

I know how to move a layer based on touch. But I would also like to be able to rotate the image.

Is there any sample code that shows how to do this? Or can anyone give me some advice?

Thanks!

4条回答
女痞
2楼-- · 2020-05-23 12:01

You should look at Apple's MoveMe example for how to move around a layer based on touch. It also applies some scaling transforms as you do it, so that should serve as a reasonable example of to apply rotation transforms.

查看更多
聊天终结者
3楼-- · 2020-05-23 12:08

You would use the view's transform property. There's some example code for rotating the view in the iPhone OS Programming Guide, under Launching in Landscape Mode

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2020-05-23 12:10

I ended up doing it like this:

CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
[[self viewWithTag:999] setTransform:transform];

Note that the angle is in radians.

查看更多
做个烂人
5楼-- · 2020-05-23 12:26

The simplest way to do this is using the layer's transform property:

float   angle = M_PI;  //rotate 180°, or 1 π radians
layer.transform = CATransform3DMakeRotation(angle, 0, 0.0, 1.0);

The first argument to the CATransform3DMakeRotation function is the amount to rotate, in radians. The next three describe the vector around which to rotate. This is describing a vector in the z-axis, so effectively perpendicular to the screen. This will rotate the layer so it's upside down.

查看更多
登录 后发表回答