Ios 从左到中移动UIImageView
我想将图像视图从左移到视图的中心 以下是我的代码:Ios 从左到中移动UIImageView,ios,objective-c,Ios,Objective C,我想将图像视图从左移到视图的中心 以下是我的代码: CGPoint origin = self.headerImage.center; CGPoint target = CGPointMake(0, self.headerImage.center.x); CABasicAnimation *bounce = [CABasicAnimation animationWithKeyPath:@"position.x"]; bounce.fromValue = [NSNumber numberWith
CGPoint origin = self.headerImage.center;
CGPoint target = CGPointMake(0, self.headerImage.center.x);
CABasicAnimation *bounce = [CABasicAnimation animationWithKeyPath:@"position.x"];
bounce.fromValue = [NSNumber numberWithInt:origin.x];
bounce.toValue = [NSNumber numberWithInt:target.x];
[self.headerImage.layer addAnimation:bounce forKey:@"position"];
加载视图控制器时,它必须从左侧开始移动,并在中心停止。但它不能正常工作。我该如何分类呢?使用
[UIView animateWithDuration:1.0 animations:^{
headerImage.frame = myNewFrameRect;
}];
使用
target
需要指明视图的中心:CGPointMake(self.view.center.x,self.view.center.y)
fillMode
removedOnCompletion
自动反转
重复计数
以避免帧更改(动画的最终)CGPoint origin = self.headerImage.center;
CGPoint target = CGPointMake(self.view.center.x, self.view.center.y);
CABasicAnimation *bounce = [CABasicAnimation animationWithKeyPath:@"position.x"];
bounce.duration = 1;
bounce.fromValue = [NSNumber numberWithInt:origin.x];
bounce.toValue = [NSNumber numberWithInt:target.x];
bounce.fillMode = kCAFillModeForwards;
bounce.removedOnCompletion = NO;
bounce.autoreverses = NO;
bounce.repeatCount = 0;
[self.headerImage.layer addAnimation:bounce forKey:@"position"];
CGAffineTransform transform = CGAffineTransformMakeScale(1.3, 1.3);
self.headerImage.transform = transform;
target
需要指明视图的中心:CGPointMake(self.view.center.x,self.view.center.y)
fillMode
removedOnCompletion
自动反转
重复计数
以避免帧更改(动画的最终)CGPoint origin = self.headerImage.center;
CGPoint target = CGPointMake(self.view.center.x, self.view.center.y);
CABasicAnimation *bounce = [CABasicAnimation animationWithKeyPath:@"position.x"];
bounce.duration = 1;
bounce.fromValue = [NSNumber numberWithInt:origin.x];
bounce.toValue = [NSNumber numberWithInt:target.x];
bounce.fillMode = kCAFillModeForwards;
bounce.removedOnCompletion = NO;
bounce.autoreverses = NO;
bounce.repeatCount = 0;
[self.headerImage.layer addAnimation:bounce forKey:@"position"];
CGAffineTransform transform = CGAffineTransformMakeScale(1.3, 1.3);
self.headerImage.transform = transform;
问题在于:
CGPoint origin = self.headerImage.center;
CGPoint target = CGPointMake(0, self.headerImage.center.x);
你没有瞄准正确的目标,你瞄准的是头部图像的当前中心
;所以从技术上讲,原点
和目标
在这里是相同的位置
将目标移动到superview的中心,您会很好:)
您也可以使用self.view.center.x
,但它不太适合未来
此外,我注意到您使用的键在两次使用时有所不同(“position”和“position.x”)。我对CAAnimations不太满意,因此这可能首先是完全正确的问题在于:
CGPoint origin = self.headerImage.center;
CGPoint target = CGPointMake(0, self.headerImage.center.x);
你没有瞄准正确的目标,你瞄准的是头部图像的当前中心
;所以从技术上讲,原点
和目标
在这里是相同的位置
将目标移动到superview的中心,您会很好:)
您也可以使用self.view.center.x
,但它不太适合未来
此外,我注意到您使用的键在两次使用时有所不同(“position”和“position.x”)。我对CAAnimations不太满意,因此这可能首先是完全正确的您的代码有什么问题?您的代码有什么问题?