绕Z轴反向旋转变换实现技巧

绕 Z 轴的相反旋转变换,属于那种看着简单但动手做起来细节还挺多的交互技巧。嵌套图层里一个transform: rotateZ(-45deg),外层来个rotateZ(45deg),就刚好抵消了,效果上就像啥也没发生。嗯,动画干净、逻辑清晰,还适合做某些过渡场景,比如展开菜单或者旋转视图时保持元素方向不变。

代码结构上也比较清爽,用了CATransform3D来搞定,具体可以参考清单 5.7 里的实现。有时候要让子视图保持原角度不动,就可以这样套一层反向的父视图,视效上就稳得一批。关键是anchorPointtransform配合用,别忘了坐标系是会变的。

我看了下《iOS 核心动画高级技巧》这块写得还不错,讲得挺细,实操也靠谱。你可以直接抄它的思路,在实际项目里试试看,尤其是在 3D 切换视图或者做类似 Cover Flow 的交互时。响应也快,代码也简单,适配也不难。

哦对了,如果你对图层变换感兴趣,可以顺便看看这些相关资源:

如果你做的是那种需要旋转但又得看起来不旋转的效果,比如相机里的罗盘、视差动效的背景,那这招真的挺好用。用得好,一下就高级起来了。

pdf 文件大小:20.35MB