我有這個viewController顯示頂部的導航欄(頂部的白色框)和底部的工具欄(圖片中的橙色框)。使視圖集中在其餘空間
因爲navigationBar是iOS添加到viewController的東西,所以當viewController可見時,self.view的最高值將被報告爲屏幕大小減去44點。
我已經添加了一個imageView到視圖,我希望它在導航欄和工具欄之間集中,如下圖所示。
我所做的是增加一個約束垂直集中的ImageView的。正如您在圖片中看到的那樣,Xcode顯示imageView完全垂直居中,但這並不是應用程序運行時發生的情況(謝謝Apple)。
實際上,這是發生了什麼:假設我在iPhone 5上運行它。iPhone的5屏幕高是568點。因爲有一個導航欄,self.view的高度將是524 pt(568 - 44)。約束愚蠢地將忽略導航欄的前44個像素,並將imageView集中在navigationBar的底部和工具欄的頂部之間。結果是imageView將更接近底部。
此圖像視圖被仔細選擇來完全填充工具欄和導航欄之間的空間,當應用程序運行在iPhone 4上時。此外,此imageView必須尊重寬高比約束。正是這樣:
集中使用垂直居中約束ImageView的而不是我試圖頂部約束添加到上海華和底部約束到工具欄。在所有的iPhone工作正常,但在iPhone 4上,在這兩個限制迫使ImageView的到另一個寬高比,就像這樣:
所以,我有什麼樣的約束應用到的ImageView使其位於導航欄和工具欄之間的空間的中心而不會丟失寬高比?
太棒了。我永遠不會找到這兩個選項(謝謝蘋果)。謝謝!!! – SpaceDog 2014-11-05 19:20:22