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

看板MacDev作者 (白毛)時間12年前 (2013/06/28 10:28), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串2/3 (看更多)
把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

06/28 10:50, , 1F
我好像也遇過...當時真的覺得被搞死
06/28 10:50, 1F

06/28 11:24, , 2F
歐歐 原來如此 我找了好久都找不原因呢 感謝~~!!
06/28 11:24, 2F

06/28 21:34, , 3F
IB裡面的auto layout有夠難用,根本就是一場災難
06/28 21:34, 3F

06/28 21:36, , 4F
個人建議用VFL或直接呼叫API比較好用
06/28 21:36, 4F

06/29 01:07, , 5F
我一開始用也卡了一陣子,後來上手覺得超好用
06/29 01:07, 5F

06/29 01:08, , 6F
尤其在綁定control間的相對位置
06/29 01:08, 6F

06/29 01:09, , 7F
不過要做動態的layout, 的確要用VFL或呼叫API
06/29 01:09, 7F
文章代碼(AID): #1HpFJ8Qu (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1HpFJ8Qu (MacDev)