Re: [問題] frame bound 沒有值?

看板MacDev作者 (愛豆麵)時間12年前 (2013/07/08 03:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《wudunglie2 (RAY)》之銘言: : 在Mainstoryboard 在viewcontroller 裡面 拉了 : 一個自定義的view : 透過IBoutlet 連接上該view : 接著在 viewdidload : 嘗試把該 view的frame 或者 bounds的值取出來 : 但是都是 0 : 請問這個是那裡出錯了呢? : 也確定有走過 : -(id)initwithCoder:(NSCoder *)aDecoder : { : if((self = [super initwithCoder:aDecoder])) : { : [self testInit]; : } : return self; : } 使用 autolayout 的情況下 viewDidLoad 裡面要取 self.view 的 frame or bound 前 要先 call [self.view layoutIfNeeded] 這樣 uiview 才會先計算出 view 的範圍值 一般情況下,app 會在每一輪系統迴圈要畫 UI 之前,先檢查有沒有 UI 需要重新 layout,但有些情況我們必須要先知道 layout 後的 UI 大小,就可以使用 layoutIfNeeded 去強制事先執行 當 UI 被 layout 過後,就不會被再 layout 一次 要標記 UI 需要重新被 layout,call setNeedsLayout 這個 之後看你要放著讓 app 自行 layout,還是強制 layout 都可以 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.104.150
文章代碼(AID): #1HsSUO9Z (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1HsSUO9Z (MacDev)