在执行以下代码之前,上图是我的视图。
@interface ViewController ()
@property (nonatomic, weak) IBOutlet UIView *layerView;
@end
@implementation ViewController
@synthesize layerView;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_4);
self.layerView.layer.affineTransform = transform;
}
... // more code
并且,上面的图像是执行代码后的视图。 我希望雪人旋转到相同的大小。但是,出于某种原因,它给了我一个非常小的雪人......有人能注意到这个错误吗?
答案 0 :(得分:0)
图层使用CATransform3D,而不是CGAffineTransform。这两者不可互换。
您应该收到该代码的编译器警告。
操作CATransform3D有相同的功能。在这种情况下,您需要CATransform3DMakeRotation。该方法围绕3D矢量旋转。您可能希望为x和y传递0,为向量的z传递1。这将使图层执行平面2D旋转,就像您的代码应用于视图的CGAffineTransform一样。