我的應用程序有一個59(虛擬)像素高的自定義導航欄,與標準Apple UINavigationController UINavigationBar的44像素相反。我的應用程序在啓動時將造型與下面的調用酒吧:自定義UINavigationBar高度:如何調整內容視圖?
UIImage *navBarImage = [UIImage imageNamed:@"navigation-bar.png"];
[[UINavigationBar appearance] setBackgroundImage:navBarImage
forBarMetrics:UIBarMetricsDefault];
這導致的問題是,它基本上是在標準的導航欄的原點在屏幕的頂部圖像耳光。底層導航欄不知道它的大小已經改變。這使得內容視圖(視圖壓入導航堆棧)在自定義欄下顯示15個像素。
我找不到改變UINavigationController's navigation view大小和位置的方法。
什麼是這種定製最優雅的會計方法?以下(不優雅)的作品,但因爲操作視圖已經被渲染後應用,位置和大小調整的轉變是對用戶非常明顯,看起來很業餘:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
CGRect frame = self.view.frame;
self.view.frame = CGRectMake(frame.origin.x, frame.origin.y + 15, frame.size.width, frame.size.height - 15);
}
所有的控制器推到導航堆棧上的是實現上述方法的UIViewController的子類。
感謝一大堆!
感謝您的迴應!我們最終做的是確保我們所有的xib的起點都是從15開始而不是0,儘管它在任何方面都不夠優雅,但它似乎經受了迄今爲止的時間考驗。很高興有一個不那麼痛苦的方式,我們必須嘗試一下! –
我的錯。其實這個工程:) –