2013-06-03 114 views
2

經過對這裏和其他網站的研究,我似乎無法找到幫助我解決問題或幫助我前進的答案。我可能不會在我的搜索中使用正確的術語。我發現的信息似乎專注於對iPhone或iPad的縱向和橫向視圖進行自動調整,但不是3.5和4形狀因子之間的垂直重新調整。iPhone Xcode視圖不會從3.5英寸到4英寸的屏幕垂直放置子視圖

我已經在Xcode 4.6.2中列出了一個示例單一視圖,以很好地適應iPhone Retina 3.5窗體系數屏幕,但是當我點擊應用Retina 4窗體系數時,底部會有一個空白空間。我會期待所有的視圖項目垂直空間出來給予一個類似的愉快的佈局。我嘗試了不同的約束設置,甚至在視圖項目上設置垂直間距> =。

非常感謝您的幫助!

我試圖發佈每種形式因素的屏幕截圖,但我的「聲望」很低。

回答

1

您需要從Storyboard/Xib的界面中增加用戶界面的大小,查找帶有兩個箭頭的Rectangle,並使用Autolayout,「springs and struts」或Use Frame和CGRect並以編程方式執行。這裏的圖像描述] 1 ver有

0

答案取決於你是否使用自動佈局(iOS 6及以上)或不。如果不是,請查看自動調整大小的掩碼(在IB中調用自動調整大小,當以編程方式調整視圖的掩碼時,通俗地稱爲「彈簧和支柱」),即autoresizingMask

如果不使用自動佈局,則使用「自動調整」設置。例如,該設置一個底視圖自動調整視圖的高度和寬度,保持頂部,底部,左,右頁邊距固定:

autosizing

玩弄點擊各種紅色箭頭以及右側面板上的I型光束,您可以調整想要進行的自動調整。右邊的小動畫窗​​口將向您展示控件如何根據3.5英寸或4.0英寸的屏幕調整尺寸。

如果使用自動佈局(iOS 6以上),你也相應成立了約束至上海華:

autolayout

設置在自動佈局約束是有點混亂,你使用它的第一次,但我會推薦你​​Cocoa Auto Layout Guide。還有鏈接到美妙的WWDC 2012視頻資源。

0

更晚,那麼永遠不會。

我發現了一種代碼方式來縮小視圖之間垂直空間的問題。

#define IS_WIDESCREEN (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

//Shrink your constraints at run time!! 
if(!IS_WIDESCREEN) 
{ 
    for(NSLayoutConstraint *c in self.view.constraints) 
    { 
     if ((c.firstAttribute == NSLayoutAttributeTop && c.secondAttribute == NSLayoutAttributeBottom) || (c.firstAttribute == NSLayoutAttributeBottom && c.secondAttribute == NSLayoutAttributeTop)) 
     { 
      if(c.constant > 13) // -> this value is adjustable so that some spaces doesn't shrink too much 
      { 
       c.constant *= (3.5/4.0); 
      } 
     } 
    } 

    [self.view layoutIfNeeded]; 
} 

它仍然可以調整,但它做的工作。

希望它可以幫助你,因爲它經過很多的努力幫助我。

相關問題