事情没有动画回来

时间:2013-02-14 12:28:14

标签: ios objective-c animation beginanimations

当我拿起一个捡拾器时,我想要制作动画并慢慢调暗背景。然后当我把它拉下来时,我想慢慢地将它动画回来。出于某种原因,它只是在我调出pickerView时才起作用,而不是在想要将其调低时。

此代码有效:

-(IBAction)chooseCategory:(id)sender{
    [self.chooseCategoryView setHidden:NO];
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.4];
    self.categoryPicker.frame = CGRectMake(0, 151, 320, 367);
    self.categoryPickerToolbar.frame = CGRectMake(0, 106, 320, 45);
    self.pickerViewBackground.alpha = 0.6;
    [UIView commitAnimations];
    [self.scrollView setUserInteractionEnabled:NO];
}

但这不是

-(IBAction)hideCategory:(id)sender {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.4];
    self.pickerViewBackground.alpha = 0;
    self.categoryPicker.frame = CGRectMake(0, 545, 320, 367);
    self.categoryPickerToolbar.frame = CGRectMake(0, 500, 320, 367);
    [UIView commitAnimations];
    [self.chooseCategoryView setHidden:YES];
    [self.scrollView setUserInteractionEnabled:YES];
}

任何人都知道它为什么没有?

1 个答案:

答案 0 :(得分:0)

您正在categoryView之后隐藏commitAnimations。因此它将在一开始就被隐藏,您将无法看到动画。

您可以使用beginAnimations等“旧方式”并使用setAnimationDidStopSelector:并隐藏其中的视图。

或者您通过使用块来使用最新的方式:

[UIView animateWithDuration:0.2
 animations:^{
    // your animations
 }
 completion:^(BOOL finished){ 
    // hide the view
 }];