保持动画的结束位置

时间:2016-03-09 15:43:29

标签: objective-c animation

我尝试了一切,但每次遇到同样的问题:

我想移动y = 276的按钮。当动画结束时,我的按钮会跳回到开始位置,但我希望endanimationposition是新位置,并且按钮必须保持在那里,直到新的动画被称为。

尝试了

[UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1];
        CGPoint p = _cell00.center;
        p.x += 100;
        _cell00.center = p;
        [UIView commitAnimations];

        [UIView beginAnimations:nil context:nil];

同样的问题,如

[UIView animateWithDuration:1.0 animations:^{
_cell00.frame = CGRectOffset(_cell00.frame, 0, 20);
}];

[UIView animateWithDuration:0.5 animations:^{
            _cell00.center = CGPointMake(0, 20.0);
        }];

编辑:

我用我的Button调用这个动画名为statisticsBUttonPressed。

- (IBAction)statisticsButtonPressed:(id)sender {


if (statOrGame == 0) {
    statOrGame = 1;
}else {
    statOrGame = 0;
}

NSLog(@"statOrGame? %d", statOrGame);
[self animateView:(UIButton *)sender];
}

-(void) animateView:(UIButton *)sender {

sender.userInteractionEnabled = NO;

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
{    // The iOS device = iPhone or iPod Touch
    NSLog(@"IS IPHONE 5");

    CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;

if (iOSDeviceScreenSize.height == 568)
{
    if (statOrGame) {


        [UIView animateWithDuration:1.0 animations:^{
_cell00.frame = CGRectOffset(_cell00.frame, 0, 20);
}];

}
}
}
}

1 个答案:

答案 0 :(得分:1)

问题是您正在使用自动布局。您不能(仅)更改通过自动布局定位的视图的框架,因为视图是其约束的位置。您需要更改约束。您可以在动画结束时执行此操作,也可以简单地为约束的更改设置动画。