2015-10-04 67 views
1

我的問題是非常相似的UIToolbar not displaying on iPhone 4 and iPhone 4s底部UIToolbar關閉屏幕和4S

我使用的Xcode 7,我試圖得到一個「傳統」的UINavigationController基於iPhone的應用程序並在各種iPhone的屏幕尺寸上運行。按照傳統,我的意思是它不使用Storyboard等。視圖從.xib加載。

該應用程序是一個經典的UINavigationController應用程式UITableViewControllers但在表視圖下方的底部的UIToolBar。 TableView和ToolBar是ViewController視圖的子視圖。 作品上的iPhone5/5S/6/6S大。 但在iPhone 4/4S的工具欄是關閉屏幕。奇怪的是,如果我旋轉屏幕到風景,工具欄出現。向後旋轉,它消失。我知道這看起來像史前iOS的代碼,但是我在這裏的損失是完全和浪費時間在Xcode和IB擺弄。我知道我錯過了一些明顯的東西。

回答

0

好像你的表視圖的高度設置爲一個固定的高度在工具欄上iPhone 5及以上的表視圖下方可見。要讓工具欄顯示在iPhone 4/4s上,需要使用類似下面的代碼來減少表格視圖框架的高度。

- (void)viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 

    if (onIphone4 && portraitOrientation) { 
     CGFloat height = 480 - self.toolbar.frame.size.height; 
     self.tableView.frame = CGRectMake(0, 0, 320, height); // for iPhone 4/4s 
    } else if (onIphone5 && portraitOrientation) { 
     CGFloat height = 568 - self.toolbar.frame.size.height; 
     self.tableView.frame = CGRectMake(0, 0, 320, height); // for iPhone 5 and up 
    } 
}  

您可能需要更改框架原點中的y位置,以考慮狀態欄和導航欄(如果它們也存在)。在這種情況下,整體框架高度需要根據這些變化進行調整。這是調整視圖大小的基於框架的方式。

替代的和優選的方法是在XIB添加自動佈局約束的工具欄和在界面生成器表視圖使得它們將保持其相對於屏幕尺寸合適的大小和位置。

0

我發現這個問題..它是在IB複選框「啓動全屏」,主「的UIWindow」 ......我從蘋果文檔引用....

「如果你選擇創建在Interface Builder窗口,一定要在屬性檢查器選擇在啓動選項全屏使窗口是當前設備的大小是否合適。」 現在,請原諒我,而我猛然將頭靠在wall..way浪費一個星期天!