精華區beta MacDev 關於我們 聯絡資訊
把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