3

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

这个:

 [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{
}
4

3 回答 3

2

这确实有效:

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

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

于 2012-12-22T18:02:50.667 回答
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,具体取决于移动方向(+ 向下移动,- 向上移动)

于 2012-12-22T17:01:27.887 回答
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)];
}];
于 2012-12-22T16:57:04.460 回答