0

需要幫助。更改UINavigationController時的UINavigationBar高度

我有一些自定義視圖控制器,像Facebook應用程序中的菜單。 當然,這個控制器使用子控制器進行操作,它提供了將它們添加到「帶菜單的控制器的根視圖」的視圖。

由於某些設計原因,當菜單滑動時,中央視圖會縮放。 所以,問題是:當從navigationController的中央視圖初始化確定。 當我改變控制器到另一個導航控制器或相同的導航欄已經高度變化。見快照。

我該如何防止這種行爲?有任何想法嗎?

謝謝。 小姐:對不起,我的英語。

初始視圖:

enter image description here

然後某種菜單滑動的:

enter image description here

然後我改變導航控制器([故事板instantiateViewControllerWithIdentifier:@ 「標識符」]);

enter image description here

和向後滑動,但導航欄有沒有考慮狀態欄大小...

enter image description here

負責更改中心視圖控制器這種方法:

- (void)setCenterViewController:(UIViewController *)centerViewController{ 
if([centerViewController isEqual:self.centerViewController]) 
    return; 

CGRect previousFrame = CGRectZero; 
CGFloat previousScale = 0.f; 
if(_centerViewController) 
{ 
    [_centerViewController removeFromParentViewController]; 
    _centerViewController.trippleController = nil; 
    [_centerViewContainer removeFromSuperview]; 
    previousFrame = _centerViewController.view.frame; 
    previousScale = _centerViewController.view.transform.a; 
} 

[centerViewController removeFromParentViewController]; 
_centerViewController = centerViewController; 
[self addChildViewController:_centerViewController]; 
_centerViewController.trippleController = self; 

self.centerViewContainer = _centerViewController.view; 
self.centerViewContainer.clipsToBounds = YES; 

if(!CGRectEqualToRect(previousFrame, CGRectZero)) 
{ 
    self.centerViewContainer.transform = GAffineTransformMakeScale(previousScale, previousScale); 
    self.centerViewContainer.frame = previousFrame; 
} 

[self.view insertSubview:self.centerViewContainer atIndex:0];} 
+0

請發佈您的代碼,以便我們可以幫助識別您的問題 – MuhammadBassio

回答

0

所以,如果有人感興趣,經過一段時間的試驗,我只是把 英寸。

dispatch_async(dispatch_get_main_queue(), ^{ 
    self.centerViewContainer.transform = GAffineTransformMakeScale(previousScale, previousScale); 
    self.centerViewContainer.frame = previousFrame; 
})` 

和導航欄停止改變他的身高。