我開發了一個iPhone5的應用程序,我啓用了使用自動佈局。我已經將每個按鈕的垂直空間40用於其另一個按鈕。當我運行的iPhone4s這個應用程序的最後一個按鈕不appeared.I.How降低垂直間距是在4s.enter圖像描述這裏運行使用自動佈局,而4屏幕應用程序運行在3.5屏幕
回答
時,您需要使用的各個之間的間隔視圖按鈕。這樣你就可以使用一個可變大小的空間,這取決於屏幕的高度。然後
事情是這樣的......
@"V:|[_spacer1][_button1][_spacer2(==_spacer1)][_button2][_spacer3(==spacer1)][_button3]...[_lastSpacer(==spacer1)]|"
這將佈局都與他們之間的間隔相等的按鈕。但是之間的空間會根據屏幕的高度而改變。
感謝回覆。有沒有辦法通過編碼來減少垂直空間限制 – chandu
爲什麼?這樣可以工作,而且更容易,因爲你不需要計算任何東西。例如,數字40從哪裏來?如果你不得不使用計算器或做數學,那麼你使用AutoLayout是錯誤的。 – Fogmeister
N.B.您可以使間隔視圖清晰,以便它們不可見。你只是用它們來佈局。 – Fogmeister
如果你不想在代碼中做到這一點,你必須在按鈕之間添加一些隱藏的「間隔」視圖,其中「等高」約束和沒有明確的高度。它們將根據需要擴展/縮小,以正確放置按鈕。
雖然你可以使用clear /隱藏UIView
對象作爲間隔,正如其他人所描述的,這是沒有必要的。您還可以通過編程方式創建約束條件,均勻分配這些約束條件,併合理使用提供給constraintWithItem
方法的multiplier
值。例如,如果您有一組UIButton
對象,則可以將它們垂直隔開:
[buttons enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:obj
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterY
multiplier:2.0 * (idx + 1.0)/([buttons count] + 1.0)
constant:0.0]];
}];
- 1. 3.5「ios應用程序屏幕弄亂了4」屏幕
- 2. iOS應用程序開始運行在4「屏幕像3.5」
- 3. 爲3.5和4英寸iPhone屏幕自定義佈局而不使用自動佈局
- 4. 自動佈局所需的3.5英寸+ 4英寸iPhone屏幕布局?
- 5. 在3.5「和4」屏幕上正確顯示應用程序
- 6. ios通用應用程序只顯示3.5英寸的屏幕,而不是4英寸的屏幕
- 7. 當屏幕鎖定時自動運行應用程序
- 8. Android:佈局「滑動」屏幕?
- 9. OpenGL屏幕布局
- 10. 應用程序崩潰時,在Android的小屏幕和大屏幕上運行
- 11. 雙屏幕應用程序
- 12. 移動Web應用程序在屏幕關閉時運行?
- 13. 運行屏幕/背光的全屏Android應用程序關閉
- 14. 佈局錯過了3.5英寸屏幕iPhone 4
- 15. 拉伸應用程序的佈局以適應屏幕尺寸
- 16. 在應用程序準備銷售後編輯5.5屏幕,4.0屏幕,3.5屏幕和iPad屏幕的屏幕快照
- 17. 將適用於4英寸屏幕的iOS應用程序安裝到3.5英寸屏幕
- 18. iPhone 3.5英寸屏幕--4英寸屏幕:
- 19. 搖動屏幕的應用程序
- 20. 屏幕不啓動iphone應用程序
- 21. 4英寸屏幕上的自動佈局
- 22. UIview佈局不自動化iPhone視網膜4英寸屏幕
- 23. 如何使用自動佈局(ios6 + ios7)的4「和3.5」iphone屏幕使用一個故事板?
- 24. 使用RecyclerView適配器更改運行時佈局屏幕
- 25. Xamarin Studio iOS應用程序中的屏幕布局不正常
- 26. 用於大屏幕基金會4響應網格佈局
- 27. Android - 全屏僅在啓動屏幕不在應用程序中
- 28. iOS:使用自動佈局縮放不同的屏幕尺寸
- 29. 屏幕鏟運機應用
- 30. 準備應用程序在3.5「和4」沒有自動佈局
想出一組更好的不依賴於固定數字的約束。 –
您必須正確設置每個按鈕的「約束」。 – Exploring
@DavidRönnqvist同意。或者,更準確地說,您需要不依賴於像素/點數量的約束。例如,使用固定的「乘數」(例如,超視圖的中心Y的百分比)的centerY約束條件很好,因爲無論屏幕高度如何,該約束都可以工作,但是您希望避免使用固定的「常量」值。 – Rob