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



当我使用显示的UI元素旋转设备时,它可以正常工作。

但是,如果我再次点击以淡出动画“关闭”元素,然后旋转,则它将导航栏向上推到状态栏中。



我不明白为什么会这样。我不想关闭statusBar,但是如果需要,我会关闭。有人可以帮助我调整杆的自动旋转位置吗?

编辑已解决

最佳答案

已解决,此代码使向下移动条形所需的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];
    }
}

关于objective-c - UINavigationBar淡入淡出位置问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8072971/

10-13 09:07