CATransform3DMakeRotation设置锚点和位置。 iOS7查看位置错误

问题描述:

CATransform3DMakeRotation设置AnchorPoint和位置 iOS7查看位置错误... 但iOS8和iOS9没有这个问题.. 为什么?CATransform3DMakeRotation设置锚点和位置。 iOS7查看位置错误


-(void)viewDidAppear:(BOOL)animated 
{ 

[self setAnchorPoint:CGPointMake(0.5, 1) forView:self.chieldImageView]; 

} 

-(void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view 
{ 

CGPoint newPoint = CGPointMake(view.bounds.size.width * anchorPoint.x, 
           view.bounds.size.height * anchorPoint.y); 

CGPoint oldPoint = CGPointMake(view.bounds.size.width * view.layer.anchorPoint.x, 
           view.bounds.size.height * view.layer.anchorPoint.y); 

newPoint = CGPointApplyAffineTransform(newPoint, view.transform); 
oldPoint = CGPointApplyAffineTransform(oldPoint, view.transform); 

CGPoint position = view.layer.position; 

position.x -= oldPoint.x; 
position.x += newPoint.x; 

position.y -= oldPoint.y; 
position.y += newPoint.y; 

view.layer.position = position; 
view.layer.anchorPoint = anchorPoint; 
} 

这可能是由于使用了自动布局,在iOS8上和各大他们固定它。
没有太多的解决方案,其中一个是保持您在容器视图内转换的视图。您可以在容器视图上使用约束来定位它,并将它放在包含的视图中(需要转换视图),只需将-translatesAutoresizingMaskIntoConstraints保留为YES即可将其添加为子视图。
检查马特book

+1

兄弟你这么酷...我的问题已解决 –