2014-01-09 77 views
1

繼我從previous SO question我問,我試圖動畫的高度變化UICollectionView(這是yellowBox在這個例子中)。在高度這一變化是由下面的代碼修改的集合視圖自動佈局限制觸發:動畫自動佈局約束更改UICollectionView

- (IBAction)expandYellowBox:(id)sender { 

[UIView animateWithDuration:0.5 
       animations:^{ 
        self.yellowBoxHeightConstraint.constant += 50; 
        [self.view layoutIfNeeded]; 
       }]; 
} 

然而,當我打電話[self.view layoutIfNeeded]這導致集合視圖被重新加載,所以它明顯閃爍的用戶。但是,我不希望收集視圖重新加載,而只是爲了更改其高度。有什麼辦法可以避免-layoutIfNeeded重新加載集合視圖,或者有一種替代方法來設置約束高度變化的動畫,這種方法不會調用具有重新加載集合視圖的副作用的方法?

回答

3

如果有其他人遇到這個問題,那是因爲我實際上在動畫塊的上面幾行打了[self.collectionView reloadData](並沒有注意到!)。看起來撥打-reloadData-layoutIfNeeded會導致收集視圖閃爍。取消撥打-reloadData可以解決問題。