2012-10-19 22 views
2

本文檔來自我的示例Storyboard的大綱顯示了我正在處理的內容。子內容視圖控制器視圖的界面大小來自Storyboard的大小?

document outline

我有一個自容器視圖控制器和通過嵌入塞格斯連接的兩個內容視圖控制器。

這裏是故事板本身。

storyboard summary

ZetaViewController具有創造一些方案視圖(內ZetaView,當然)。我注意到,當我將這些程序化創建的視圖集中在一起時,他們看起來真的很偏離中心。

ZetViewController通過檢查self.view.bounds.size.heightself.view.bounds.size.width,做一些相應的計算爲中心的東西。

當我加入調試日誌記錄到ZetaViewController,我注意到self.view.bounds.size.heightself.view.bounds.size.width有尺寸等於ContainerView(768×1 1004)和不是 ZetaView(728 x 637)。 IB中的Size Inspector確認這些值。

我創建了ZetaView的標籤屬性的獨特的價值和記錄它。 ZetaViewController.view 真的是ZetaView因爲標籤值證實了這一點。

這是怎麼回事呢?爲什麼在故事板和尺寸檢查器上顯示尺寸較小的ZetaView在運行時會顯示錯誤的屬性值?

回答

2

好吧,我會指向一個很好的職位,我發現:(更新) http://kevindew.me/post/18579273258/where-to-progmatically-lay-out-views-in-ios-5-and

我有一個可怕的時間添加陰影calayers到視圖自動佈局做了它的魔力了。 viewDidLoad,viewWillLoad等沒有正確的佈局。

viewWillLayoutSubviews叫了好幾次,國家沒有完全建立。然而......在viewDidLayoutSubviews中,最後一切都按照我的預期設置。

+0

對不起,我不知道爲什麼會發生。現在修復。 – Ajaxharg

+0

很好的鏈接。只是評論,因爲我喜歡'不能編輯...六個字符'的評論,只有最後編輯的人添加了「(更新)」:9個字符... – LpLrich

5

我的問題無關故事板,塞格斯,或自定義的容器視圖控制器VS內容視圖控制器。它與iOS 5中引入的新功能Cocoa Auto Layout有關。

我的問題源於檢查視圖邊界大小viewDidLoad而不是viewWillLayoutSubviews。在調用viewDidLoad時,視圖控制器的視圖尚未被賦予適當的大小。當我將以編程方式將視圖居中的代碼移動到viewWillLayoutSubviews時,它按我的預期工作。我仍然在創建代碼viewDidLoad,因爲viewWillLayoutSubviews作爲佈局更改被重複調用。

另請參閱查看iOS編程指南"Tweaking the Layout of Your Views Manually"

相關問題