我正在尝试使用以下代码对我的 UIView 对象应用透视变换:
CATransform3D t = CATransform3DIdentity;
t.m34 = -1.0/1000;
t = CATransform3DRotate(t, angle, 0.0f, 1.0f, 0.0f);
myView.layer.transform = t;
而且我根本看不到任何效果。我尝试了其他转换,例如简单的翻译,但它们也不起作用。
但是,如果我进行以下两种修改中的任何一种,那么它会起作用,但都不能满足我的要求:
将最后一行更改为
myView.layer.sublayerTransform = t;
这种工作,但它只转换 myView 上的子视图,而不是 myView 本身。
添加动画代码以应用更改,而不是直接将更改分配给图层:
CABasicAnimation *turningAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; turnAnimation.toValue = [NSValue valueWithCATransform3D:t]; turningAnimation.delegate = self; turnAnimation.fillMode = kCAFillModeForwards; turnAnimation.removedOnCompletion = NO;
[myView.layer addAnimation:turningAnimation forKey:@"turning"];
问题是我不想要动画。
有人可以为我指明方向吗?
谢谢!