2012-06-29 59 views
1
位置

我有一個UIScrollView加入和通過界面生成器定位,作爲導航控制器堆棧上的視圖控制器的一部分。當我將新視圖控制器推入堆棧時,彈出新的視圖控制器,原始視圖中的UIScrollView向上漂移了52個像素。的UIScrollView莫名其妙地移出

這隻發生在設備上,而不是模擬器。

任何想法可能導致這種情況?我可以通過調用viewWillAppear/viewWillAppear中的調用來修復它,但由於某些原因,即使這種方式不起作用,所以我很想解決根本原因。謝謝!

注意,在迴應評論:我躲在推視圖控制器的導航欄,而不是原來的視圖控制器。另請注意,原始視圖控制器上還有其他幾個UIView元素,但它只是UIScrollView不在位置。

更新:在推視圖控制器不隱藏導航欄對UIScrollView的問題沒有任何影響 - 您的建議,提意見,但感謝。

+0

你隱藏導航欄嗎? – mkral

+0

帶有滾動視圖的視圖上的導航控制器工具欄?如果不是,則添加並刪除該工具欄可能會導致滾動視圖的移動。 –

+0

mkral/Conor - 事實證明你們是對的;我在原始視圖控制器上永久隱藏導航欄,爲什麼? - 導致導航控制器堆棧中後續的壓入/彈出導致奇怪的重新定位。我通過在UIScrollView上設置autoresize掩碼來修復問題,使其具有固定的上支柱。既然你們同時發表了評論,並激發了解決方案,那麼無論你將你的評論放在第一個答案中,我會標記爲已回答。再次感謝。 – beaudrykock

回答

0

解決方法:如果導航欄在視圖控制器上隱藏,並且您不希望任何子視圖(您通過Interface Builder添加)以意外的方式自動重新定位,請確保子視圖上的struts是設置爲固定。