作者whitefur (白毛)
看板MacDev
標題Re: [問題] frame bound 沒有值?
時間Fri Jun 28 10:28:22 2013
把storyboard的autolayout關掉
frame就有值了
因為在autolayout下
各control的frame是由NSLayoutConstraint計算的結果
autolayout會在畫面要畫出來的時候才根據NSLayoutConstraint去計算frame
所以在viewDidLoad時self.view的subview是沒有frame的
即便在此時你寫了button.frame = CGRectMake(......);
最後在viewDidAppear的時候你去看button.frame還是會變成你在storyboard上設定的值
你可以在viewDidLoad, viewWillAppear, viewDidAppear都去看subview的frame
你會發現只有在viewDidAppear時才是你在storyboard上設定的值
autolayout是iOS6才有的東西
在排板上非常好用!
有機會再來分享一下最近使用的心得
想了解autolayout與原來的autosizing的差別可以跟著這篇圖文並茂的教學實作看看
http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
※ 引述《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;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.107.168
推 kiii210:我好像也遇過...當時真的覺得被搞死 06/28 10:50
推 wudunglie2:歐歐 原來如此 我找了好久都找不原因呢 感謝~~!! 06/28 11:24