作者wnt2009 (爱豆面)
看板MacDev
标题Re: [问题] frame bound 没有值?
时间Mon Jul 8 03:55:01 2013
※ 引述《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