Re: [問題] frame bound 沒有值?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章