2016-02-17 64 views
0

我有一個放置在屏幕邊界之外(視圖下方)的視圖。當一個按鈕被按下時,這個視圖會變成動畫,以便它變得可見。它有點像鍵盤,儘管它不是。 在這個視圖裏面我有一個容器視圖,它連接到一個UICollectionViewController。UICollectionView在調用cellForRowAtIndexPath時移動超級視圖

當我滾動collectionView時會出現問題。只要調用cellForRowAtIndexPath,整個超級視圖就會再次移出屏幕(沒有動畫)。如果我再次按下該按鈕,它會恢復動畫。

有誰知道是什麼導致了這種行爲?我懷疑重用單元格的框架會將超級視圖推回初始化的位置。任何建議我應該如何解決這個問題?

+0

你在使用autolayout嗎? –

+0

是的,並且所有內容都在IB中進行佈局,並受到限制。當裝載所有東西的視圖控制器被加載時,我的動畫視圖實際上是通過一個可見的框架設置的。而當viewDidLayoutSubviews被調用時,我將它移開,這樣它就隱藏了。 – Daniel

+0

但爲了動畫視圖,你在修改約束嗎?或者你使用setFrame? –

回答

1

使用自動佈局時,您應該使用約束進行動畫製作。我之前也有同樣的問題。也許viewDidLayoutSubviews在您使用該應用程序時被多次調用,並再次隱藏您的視圖。

+0

謝謝,viewDidLayoutSubviews被多次調用。我會考慮約束動畫。 – Daniel

相關問題