2011-11-09 18 views
1

ここでは、私が対処しなければならない面白い小さな問題があります。ナビゲーションバーを半透明に、下のビューをフルスクリーンに設定しました。ビューを読み込むと、ビューのクリアボタンをタップして、バーやその他のUI要素をフェードインするアニメーションを「アクティブにする」ことができます。UINavigationBarフェード位置の問題

enter image description here

私はそれが完璧に動作VISIBLE UI要素を持つデバイスを回転させます。

しかし、フェードアウトアニメーションで要素を「切る」ようにもう一度タップして回転すると、ナイーブゲーションバーがステータスバーにプッシュアップされます。

enter image description here

これがなぜ起こるか私は理解していません。私はstatusBarをオフにしたくないが、そうしなければならない。バーのオートローテーションポジショニングを手伝ってくれる人はいますか? EDITが解決

答えて

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]; 
    } 
}