事物不会以动画形式返回



当我打开一个拾取器时,我想设置动画并慢慢调暗背景。然后,当我把它放下时,我想慢慢地把它动画化。出于某种原因,它只是在我打开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];
}

有人知道为什么不知道吗?

您将categoryView隐藏在commitAnimations之后。所以它会在一开始就被隐藏起来,你将无法看到动画。

您可以对beginAnimations等使用"旧方式",也可以使用setAnimationDidStopSelector:并在那里隐藏视图。

或者你使用最新的方式使用区块:

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

相关内容

  • 没有找到相关文章

最新更新