ios - 层旋转

标签 ios calayer

我正在尝试在我的回调中旋转我的 calayer 对象,以实现这样的旋转手势识别器:

CGFloat angle = [(NSNumber *)[hitlayer valueForKeyPath:@"transform.rotation.z"] floatValue];

hitlayer.transform = CATransform3DMakeRotation( (angle+90) / 180.0 * M_PI, 0.0, 0.0, 1.0);

[hitlayer setValue:[NSNumber numberWithFloat:(angle+90)] forKey:@"transform.rotation.z"];

这第一次工作正常。但随后,transform.rotation.z 返回的值仍然是原始值(不是变换后的值),因此图层不会进一步旋转。有什么想法我想念的吗?

谢谢

最佳答案

transform 属性不会更改 View 或图层的边界或中心。它只是在绘制时应用转换,所以它看起来完全不同。因此,在您的情况下,您必须跟踪最后的度数值并在每次调用时添加 90。

关于ios - 层旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549977/

相关文章:

objective-c - 合成的ivars存储在哪里?

cocoa - CALayer 过滤器覆盖其他子层

ios - OS X ejabberd,XMPPFramework 的新用户注册

ios - 如何确定循环内所有异步调用的结束?

安卓/iOS : Titanium Appcelerator horizontal scrolling

iphone - UIView左右阴影

ios - CALayers : A) Can I draw directly on them and B) How to make a width adjustment on a superlayer affect a sublayer

ios - 仅将 CALayer 阴影遮蔽到矩形外部

ios - 使用 CALayers 绘制自定义形状和动画自定义属性?

ios - 如何在多页面 SwiftUI 用户注册之间传递用户输入数据?