Animate setToolbarHidden未设置动画

时间:2012-12-22 16:41:07

标签: ios

您是否为工具栏的外观设置了动画 - 我无法将其设置为动画

此:

 [self.navigationController setToolbarHidden:NO animated:YES];

或者这个:

 [UIView animateWithDuration:2.0
                         animations:^{
                             [self.navigationController setToolbarHidden:NO
                                                                animated:YES];
                         }
                         completion:^(BOOL finished){
                             // whatever
                         }];
    }

两者都

- (void)viewDidAppear:(BOOL)animated{


- (void)viewWillAppear:(BOOL)animated{
}

3 个答案:

答案 0 :(得分:2)

这应该可以解决问题,从IB创建和链接UIToolbar:

[UIView beginAnimations:@"animate" context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.25f];
self.toolbar.frame = CGRectOffset(self.toolbar.frame, 0, direction*self.test.toolbar.size.height);
[UIView commitAnimations];

其中“方向”为+/- 1,具体取决于移动方向(+向下移动, - 向上移动)

答案 1 :(得分:2)

这确实有效:

- (void)viewDidAppear:(BOOL)animated{
  [self.navigationController setToolbarHidden:NO animated:YES];
}

在视图可见之前,动画不应该开始。

答案 2 :(得分:1)

如果您的工具栏实际上是由导航控制器添加的,那么这应该有用。但是,因为它不是让我相信你已经通过拖放在界面构建器中手动添加了工具栏。如果是这种情况,您将必须为工具栏创建一个IBOutlet,将其链接,然后使用:

[UIView animateWithDuration:0.2 animations:^{
    [myToolBar setFrame:CGRectMake(myToolBar.frame.origin.x, myToolBar.frame.origin.y + myToolBar.frame.size.height, myToolBar.frame.size.width, myToolBar.frame.size.height)];
}];