0

实际上,为了显示/隐藏,我正在使用 UIView 动画。和像动画这样的简单方法:YES/NO。但这并没有给我顺利的回应..请给我建议...

BOOL navBarState = [self.navigationController isNavigationBarHidden];


    [UIView beginAnimations:nil context:NULL];

    [UIView setAnimationDuration:0.3];


    [self.navigationController setNavigationBarHidden:!navBarState animated:NO];


    [UIView commitAnimations];

它没有给我令人满意的结果,我想用 CAAnimation 做同样的事情。

4

2 回答 2

0
CGRect rect = self.navigationController.navigationBar.frame;
    rect.origin.y = rect.origin.y < 0 ?
    rect.origin.y + rect.size.height
    :   rect.origin.y + rect.size.height;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.2];
    self.navigationController.navigationBar.frame = rect;
    [UIView commitAnimations];

只需使用上面的代码,它可以帮助您获得流畅的动画......

于 2011-10-08T09:36:33.167 回答
0

为什么需要将以下行放入 UIView 动画大括号中:

[self.navigationController setNavigationBarHidden:!navBarState animated:NO];

为什么不直接用动画调用它:YES 而不调用 [UIView beginAnimation]/[UIView commitAnimation]?

[self.navigationController setNavigationBarHidden:!navBarState animated:YES];
于 2011-10-08T08:19:58.313 回答