0

在我的iPhone應用程序,這是基於NavigationController後,我有一些元素A,B,另一種觀點認爲X的ç子視圖當我推控制器到達這一觀點,在viewWillAppear中,我調整爲了正確處理設備的方向,根據X的大小確定a,b和c的大小和位置。問題在於X的大小正在變更 viewWillAppear已被調用。我將X分類並編寫了一個setFrame方法來設置斷點並嘗試查找原因。下面是指向圖像的鏈接(由於缺少點,我無法直接發佈圖像)顯示viewWillAppear處的中斷,以及viewWill在調用堆棧後出現的setFrame中斷。我需要幫助來找出爲什麼X的大小以這種方式被改變。謝謝。查看尺寸變化viewWillAppear中

在viewWillAppear中: http://img718.imageshack.us/img718/9898/viewwillappearbreak.th.png

在子類SETFRAME休息viewWillAppear中後: http://img703.imageshack.us/img703/7995/afterviewwillappear.th.png

在此先感謝。 (我希望圖像能夠正確顯示)。

+0

你對viewWillAppear和viewDidAppear的實現是什麼樣的?代碼片段會很好。特別是,你什麼時候從你自己的實現中調用[super viewWillAppear]和[super viewDidAppear]? – occulus

+0

另外,您是否考慮在視圖中使用自動調整大小的彈簧,以便在方向更改時調整組件大小和/或正確定位組件?也只是雙重檢查設置自動調整行爲的方式可能是一個好主意。 – occulus

+0

順便說一句,這可能與layoutSubviews被調用,在這種情況下,下面的答案可能會有用: http://stackoverflow.com/questions/728372/when-is-layoutsubviews-called 頂部的答案有一個鏈接到一個有用的博客帖子,涉及layoutSubviews何時被調用。 – occulus

回答

0

感謝您提供我提供的有限信息的所有回覆。我終於找到了問題的原因。我的筆尖文件包含一個工具欄(我猜是一件壞事,如果你使用的是導航控制器做)我也對我的導航控制器調用

setToolbarHidden: NO 

。我是iPhone編程的新手,並且認爲nib文件中的工具欄會以某種方式顯示爲導航視圖工具欄。看來情況並非如此。我爲什麼這個問題是怎麼回事的理解,就是:

  • 的觀點得到了裝載從筆尖工具欄和導航控制器具有可見的工具欄,所以我的X查看高度是328(2的高度當調整到屏幕大小時,工具欄將被減去,導航控制器和視圖中的工具欄將被減去)。
  • viewWillAppear中之後,導航控制器代碼顯然發現2個工具欄,所以決定將隱藏在一個導航控制器,由44增加我的X視圖高度(372)。

我刪除從筆尖文件中的工具欄,並通過調用

setToolbarItems 

框架的高度增加了工具欄項到導航控制器工具欄viewWillAppear中後保持不變。

感謝您的回覆。我希望這些評論能夠讓其他人面臨同樣的問題。