[問題] 請問UI介面的相關問題

看板MacDev作者 (15357)時間9年前 (2015/09/06 18:34), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
各位高手好,想請教關於UI介面的問題 假設我有一個viewA在StroyBoard設好相關的AutoLayout之後 正常來說viewA的frame會隨著不同設備的螢幕大小變化 而我這個viewA上還會有個viewB 在上述的動作下我有兩個疑問想請教 1. 假設要新增的viewB並不是動態內容,可以直接在StoryBoard上拉出相關介面 而viewB必須在viewA的正中央,且viewB的大小最大不能超過320*240,縮小也必須等比例 也就是說, 如果設備螢幕太小,例如使用者使用iPhone4, 那麼viewB必須要依據320*240等比例縮小,縮小到不超出viewA為止 如果設備螢幕太大,例如使用者使用iPad 那麼viewB最大就只能到320*240 小弟只知道等比例可以使用aspect ratio constraint達到效果 但不曉得能不能設置view的大小限制,還請各位高手指教 本來是想說不然用程式碼的方式來設定viewB的大小跟位置, 但這樣卻出現第二個問題 2. 小弟將viewA及viewB利用IBOutlet的方式設置在viewController裡面 但在viewController的viewDidLoad函式中,viewA的frame總是錯誤的 造成我沒辦法在viewDidLoad中決定viewB的大小, 必須在viewDidAppear中viewA的frame才是真正的大小 但viewDidAppear會在viewController每次出現的時候都會被呼叫, 這樣viewB的排版會不斷的被執行 如果利用if來判斷排版過了沒,個人又覺得蠢蠢的 想請問是否有更好的方法可以達到同樣的效果 感謝各位 題外話@@ 想請問一下各位高手用程式碼排版介面的時候 都是怎麼排的,小弟用程式碼排版的時候都是直接指定相關的x, y座標 而width, height則是依據superView的大小來算 如果要排三個橫向的label,小弟大致上會這樣做 var x=0 var y=0 for var index = 0 ; index != 3 ; index++{ label[index].frame(x, y, width, height) x += width view.addSubview( label[index] ) } 不知道這樣的做法是不是不太好@@ 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.174.119.198 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1441535683.A.4F6.html

09/07 02:55, , 1F
Auto layout可以設定min or max的constrain
09/07 02:55, 1F

09/07 09:28, , 2F
用了autolayout之後程式也要用autolayout啊
09/07 09:28, 2F

09/12 23:38, , 3F
原來如此,受教了,感謝各位大大
09/12 23:38, 3F
文章代碼(AID): #1Lx1R3Js (MacDev)
文章代碼(AID): #1Lx1R3Js (MacDev)