CATransform3DMakeRotation设置AnchorPoint和位置。 iOS7查看位置错误

时间:2015-09-28 07:06:13

标签: ios objective-c anchorpoint

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

-(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;
}

1 个答案:

答案 0 :(得分:0)

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