我已創建使用UIView100高度和寬度100與50的半徑將其在4英寸的設置完成橙色圓。 當我移動到4.7英寸或更高時,圓圈變形。 我該怎麼做才能讓圓圈在大型設備上顯示時不會變形?
1
A
回答
4
所以我猜你使用Xcode的「重置爲建議的約束」選項,如:
當你這樣做時,Xcode猜測你想要什麼約束。不幸的是,在你的情況下,它猜測錯了。它確實創建了你想要的居中約束,但它確實創建了你想要的寬度和高度約束。相反,它創造的前沿和頂邊的約束,比如:
所以,當您加載場景更大的設備上,以滿足這些約束,自動佈局必須做出視圖大小,像這樣的:
要解決這個問題,你需要刪除邊緣約束:
度並添加寬度和高度的限制:
所以你在子視圖這個樣子的最終約束:
+0
我已經看到一個問題的最佳答案,保持良好的工作人員。 – pete800
1
我打賭你使用了一個固定的圓角半徑來製作一個圓形的UIView(這對於1:1的寬高比也有一個限制)。只要做到這一點,角落的半徑就可以在視圖的正確尺寸可以知道的地方進行計算。 viewDidLayoutSubviews是一個很好的地方,因爲它會照顧其他大小,如屏幕旋轉。
override func viewDidLayoutSubviews() {
self.circleView.layer.cornerRadius = self.circleView.frame.size.width/2 // Assumes width == height because of 1:1 aspect ratio constraint
}
或者不要讓您的視圖的大小取決於屏幕的寬度或高度(即除去約束兩側,中心它,並給它一個固定的寬度和高度)
相關問題
- 1. 如何設置字體的大小取決於屏幕尺寸
- 2. 點擊後有小屏幕尺寸一個功能和屏幕尺寸大了
- 3. 圖片徽標應保持相對於設備屏幕尺寸的大小
- 4. 基於Jquery的屏幕尺寸更改Div的大小
- 5. 根據屏幕尺寸更改小部件的大小?
- 6. 根據屏幕尺寸縮小字體大小/邊距大小?
- 7. 將圖像設置爲相對於屏幕尺寸的大小?
- 8. 我應該如何爲小屏幕和大屏幕手機定義尺寸?
- 9. 是否有任何屏幕尺寸大於GL_MAX_TEXTURE_SIZE的Android設備?
- 10. 當屏幕尺寸發生變化時,調整固定對象的大小
- 11. 基於設備屏幕大小的Android調整大小
- 12. 取決於屏幕尺寸
- 13. 調整視頻的大小取決於屏幕尺寸少用CSS
- 14. xcode的屏幕尺寸是固定的 - 不會改變每個設備
- 15. 有不同大小的2個圖像取決於屏幕大小fancybox
- 16. iphone應用尺寸小於屏幕
- 17. React Native - 如何設置獨立查看大小屏幕大小?
- 18. jquery change colorbox彈出尺寸隨着屏幕大小的變化
- 19. 調整相對於屏幕尺寸的元素大小
- 20. 根據屏幕尺寸設置UICollectionViewFlowLayout的項目大小
- 21. 爲較小尺寸的屏幕調整圖像大小
- 22. 保持GWT小部件大小的比例與屏幕尺寸
- 23. 調整大小的UIScrollView 3.5和4英寸的屏幕尺寸
- 24. 更改價格取決於尺寸和顯示大小
- 25. iOS調整TextView大小以適應不同尺寸的屏幕
- 26. android設備屏幕尺寸支持大屏幕
- 27. 自定義佈局是誰的大小是屏幕尺寸
- 28. 設置相應的設備屏幕尺寸的Textview尺寸
- 29. Android - 所有屏幕尺寸的按鈕文本大小
- 30. 是否有屏幕尺寸關係的字體大小? iPhone
您是如何創建該圓的?以編程方式(通過代碼)或僅在您的故事板/ xib文件中?是否有你使用的AutoLayout約束? –
我在右側的屬性檢查器中輸入了寬度和高度。然後我編程添加了半徑。是的,我點擊了自動佈局按鈕,這就是我最終的結果。圓圈位於正確的位置,但放置在較大的設備上時會發生彎曲。 – pete800
編輯您的問題以顯示該圓圈UIView上的佈局約束的屏幕截圖。我懷疑你對UIView的底部有一個固定的約束,導致它被拉長,並且你可能會在Xcode控制檯中看到一個「破壞的約束」警告,因爲它不能同時執行底部約束和高度約束。 –