我尝试了一切,但每次遇到同样的问题:
我想移动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);
}];
}
}
}
}
答案 0 :(得分:1)
问题是您正在使用自动布局。您不能(仅)更改通过自动布局定位的视图的框架,因为视图是其约束的位置。您需要更改约束。您可以在动画结束时执行此操作,也可以简单地为约束的更改设置动画。