我正在製作主屏幕,我有4-5個按鈕。正如我們所知道的那樣,iphone 5/SE屏幕比iphone 6和7更小。因此,我們需要根據屏幕尺寸擴大和縮小按鈕尺寸。什麼是最好的方法或算法?我使用的固定最小尺寸的按鈕來處理iphone 5,但這些固定的小尺寸按鈕看起來很奇怪,當我們使用iphone 6和7.根據屏幕尺寸調整按鈕尺寸
2
A
回答
0
有幾種方法,我用來解決這個問題:
聲明模型中按鈕的大小。該模型應該有一個返回按鈕大小的方法,然後您可以修改每個設備/屏幕大小的值。例如:
class MyLayoutClass {
func getSizeForButton() -> CGSize {
if UIDevice.current.userInterfaceIdiom == .pad {
return CGSize(width: 100, height: 50)
} else {
// iphones
let bounds = UIScreen.main.bounds
// iphone SE has 320 width
if bounds.width > 320 {
return CGSize(width: 80, height: 50)
} else {
return CGSize(width: 50, height: 50) // smaller button size!
}
}
}
}
然後可以使用這個大小的屏幕依賴尺寸適用於您的按鈕
另一種方法涉及Interface Builder中。您可以將所有按鈕設置爲彼此具有固定的邊距,然後將「相等寬度」關係應用於彼此。見截圖例如:
0
您可以使用AutoLayout
與約束或在XCode中AutoResizing
。
0
好辦法
您可以使用UIStackView
或UITableView
或UICollectionView
的一樣。根據屏幕大小在運行時動態定義UICollectionViewCell
或UITableViewCell
的大小。
手動方法
如果您已經添加了不同的5個按鈕,你不想去的上述變化,自動版式是在拯救你。 如果您需要水平放置它們,請定義Equal Widths
約束條件。同樣在垂直定位的情況下,您可以指定Equal Heights
約束。 您甚至可以在運行時根據屏幕尺寸計算寬度或高度,在運行時設置它!
希望它有幫助。快樂編碼!
0
有一種簡單的方法可以根據屏幕尺寸調整按鈕的大小。比如說,iPhone 5上的按鈕尺寸正確,寬度爲320,高度爲568。
聲明兩個類變量(或全局變量,如果要調整不同類別的按鈕)稱爲widthMultiplier
和heightMultiplier
:
var widthMultiplier = 0.0
var heightMultiplier = 0.0
在你viewDidLoad
方法,添加以下代碼:
widthMultiplier = Double(self.view.frame.size.width)/320
heightMultiplier = Double(self.view.frame.size.height)/568
然後你可以根據這個調整你的按鈕大小:
button.frame.size.width = button.frame.width * CGFloat(widthMultiplier)
button.frame.size.height = button.frame.height * CGFloat(heightMultiplier)
如果需要,還可以調整該按鈕的位置,使其與屏幕尺寸成比例,以便在iPhone上顯示正確的位置6/7更大的屏幕尺寸,例如6/7 Plus:
button.frame.origin = CGPoint(x: button.frame.origin.x * CGFloat(widthMultiplier), y: button.frame.origin.y * CGFloat(heightMultiplier))
我希望這會有所幫助。
相關問題
- 1. 如何根據屏幕尺寸更改按鈕尺寸?
- 2. Android根據設備的屏幕尺寸調整圖像尺寸
- 3. 根據屏幕尺寸調整按鈕之間的邊距
- 4. 根據屏幕尺寸自動調整HTML按鈕的大小?
- 5. 根據屏幕尺寸
- 6. 根據屏幕尺寸
- 7. 屏幕尺寸
- 8. 屏幕尺寸
- 9. 屏幕尺寸
- 10. 更改屏幕尺寸的按鈕尺寸Android Studio
- 11. 當屏幕尺寸減小時自動調整圖像尺寸
- 12. Swift - 根據尺寸屏幕設置UIView的尺寸
- 13. 屏幕尺寸到圖像尺寸
- 14. 屏幕尺寸與按鈕位置
- 15. Android按鈕限制和屏幕尺寸
- 16. 根據屏幕尺寸更改圖像
- 17. 根據屏幕尺寸更改CSS
- 18. 根據屏幕尺寸替換HTML
- 19. 根據屏幕尺寸的視口值
- 20. 根據不同的屏幕尺寸
- 21. 改變CSS,根據屏幕尺寸
- 22. 根據屏幕尺寸更改功能
- 23. 根據DataGridView中(的WinForms)屏幕尺寸
- 24. 根據屏幕尺寸的Android Manifest
- 25. 根據屏幕/窗/設備尺寸
- 26. 根據屏幕尺寸更改佈局
- 27. 根據屏幕尺寸播放音頻
- 28. 根據屏幕尺寸切換CSS類
- 29. 與屏幕尺寸
- 30. Android屏幕尺寸
在UITableViewController而不是UIViewController中設計你的用戶界面,這樣它就可以適合每一個屏幕尺寸.. –
向我們展示佈局你需要? 5個按鈕佈局水平或垂直。告訴我們你的方法,這將是有益的。 – luckyShubhra
我希望這個鏈接解決你的問題https://stackoverflow.com/questions/29308941/scale-text-label-by-screen-size – Jay