0

我在使用 UI 动画时遇到问题。

我有一个uiview:theView。

我为 theView 设置动画以移动到 mainView 上的某个随机位置。它从 A 点移动到 B 点,并将其比例从 1.0 更改为 1.5;所以在动画之后,视图更大并且处于一个新的位置。

我通过按钮调用第二个动画。这一个只移动视图。动画结束后,视图已经移动。但是,视图不再更大,它的比例又回到了 1.0。

那么这些动画值不会成为尺寸、位置、ex 的新值吗?

我将很快发布代码,因为这当然可能是我遗漏的粗心错误。

4

2 回答 2

0

如果它的 UIView 动画。

- (void)viewDidLoad
{
    [super viewDidLoad];

        _yourView = [[UIView alloc]initWithFrame:CGRectMake(300, 300, 100, 100)];
        [_yourView setBackgroundColor:[UIColor redColor]];
        [self.view addSubview:_yourView];

        [UIView animateWithDuration:1.0f animations:^{
        [_yourView setFrame:CGRectMake(400, 400, 150, 150)];
        } completion:nil];

        UIButton *aMoveButton = [[UIButton alloc] initWithFrame:CGRectMake(10.0f, 5.0f, 60.0f, 40.0f)];
        [aMoveButton setTitle:@"MoveView" forState:UIControlStateNormal];
        [aMoveButton addTarget:self action:@selector(moveYourView) forControlEvents:UIControlEventTouchDown];
        [self.view addSubview:aMoveButton];

}

-(void)moveYourView{
    [UIView animateWithDuration:1.0f animations:^{
        [_yourView setFrame:CGRectMake(300, 500, 150, 150)];
    } completion:nil];
}

相信我这行得通,它实际上改变了视图的大小、位置值。

于 2013-05-23T07:07:26.603 回答
0

我不能发表评论,所以我只想建议你说UIView,我不是 100% 确定,所以不要相信我的话,但我很确定你应该UIImageView改用。希望能有所帮助:)

// create the view that will execute our animation
 UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame];

 // load all the frames of our animation
 campFireView.animationImages = [NSArray arrayWithObjects:    
                             [UIImage imageNamed:@"campFire01.gif"],
                             [UIImage imageNamed:@"campFire02.gif"],
                             [UIImage imageNamed:@"campFire03.gif"],
                             [UIImage imageNamed:@"campFire04.gif"],
                             [UIImage imageNamed:@"campFire05.gif"],
                             [UIImage imageNamed:@"campFire06.gif"],
                             [UIImage imageNamed:@"campFire07.gif"],
                             [UIImage imageNamed:@"campFire08.gif"],
                             [UIImage imageNamed:@"campFire09.gif"],
                             [UIImage imageNamed:@"campFire10.gif"],
                             [UIImage imageNamed:@"campFire11.gif"],
                             [UIImage imageNamed:@"campFire12.gif"],
                             [UIImage imageNamed:@"campFire13.gif"],
                             [UIImage imageNamed:@"campFire14.gif"],
                             [UIImage imageNamed:@"campFire15.gif"],
                             [UIImage imageNamed:@"campFire16.gif"],
                             [UIImage imageNamed:@"campFire17.gif"], nil];

 // all frames will execute in 1.75 seconds
 campFireView.animationDuration = 1.75;
 // repeat the annimation forever
 campFireView.animationRepeatCount = 0;
 // start animating
 [campFireView startAnimating];
 // add the animation view to the main window 
 [self.view addSubview:campFireView];
于 2013-05-23T02:40:54.607 回答