UINavigationBar淡出位置问题

时间:2011-11-09 23:04:11

标签: objective-c ios ipad uinavigationbar

所以,这是一个我必须处理的有趣的小问题。我将navigationBar编码为半透明,下面的视图为fullScreen。当我加载视图时,我可以点击视图中的清除按钮来“激活”在条形图和其他ui元素中淡化的动画。

enter image description here

当我使用UI ELEMENTS VISIBLE旋转设备时,它可以很好地工作。

但是,如果我再次点击“关闭”带有淡出动画的元素,然后旋转,它会将naivgationbar推入状态栏。

enter image description here

我不明白为什么会这样。我不想关闭statusBar,但如果必须,我会。酒吧的自动旋转定位可以帮助我吗?

编辑已解决

1 个答案:

答案 0 :(得分:0)

已解决,此代码动画显示向下移动条形所需的20个像素。

- (void)showToolbar
{

    if (toolbar.hidden == YES)
    {
        [self.navigationController.view layoutSubviews];
        [UIView animateWithDuration:0.25 delay:0.0
                            options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction
                         animations:^(void)
         {
             [[UIApplication sharedApplication]setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];             
             toolbar.hidden = NO;
             toolbar.alpha = 1.0f;
             self.navigationController.navigationBar.alpha = 1.0f;
             CGRect frame = self.navigationController.navigationBar.frame;
             frame.origin.y = 20.0;
             self.navigationController.navigationBar.frame = frame;
         }
                         completion:NULL
         ];
    }
    if ([self.navigationController.navigationBar isHidden]) {
        [self.navigationController setNavigationBarHidden:NO animated:NO]; 
    }
}