簡體   English   中英

setCollectionViewLayout上的EXC_BAD_ACCESS

[英]EXC_BAD_ACCESS on setCollectionViewLayout

如果我在方向更改期間更改了UICollectionView的布局,我會在幾次旋轉后獲得EXC_BAD_ACCESS

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    UICollectionViewLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    self.myCollectionView.collectionViewLayout = layout; // This causes EXC_BAD_ACCESS after a few rotations
}

這是一個UICollectionView錯誤嗎? 或者我做錯了什么? 如果這是一個錯誤,有沒有辦法在方向更改期間更改整個布局?

我注意到在這個答案中提到了同樣的問題。 使用NSZombies進行調試不會產生其他信息。

不太確定它有什么要做,但iOS 6發行說明說:

willRotateToInterfaceOrientation:duration: , willAnimateRotationToInterfaceOrientation:duration:didRotateFromInterfaceOrientation:不再在任何對自身進行全屏演示的視圖控制器上調用方法 - 例如, presentViewController:animated:completion:

您應該確保您的應用不使用這些方法來管理任何子視圖的布局。 相反,他們應該使用視圖控制器的viewWillLayoutSubviews方法,並使用視圖的邊界矩形調整布局。

由於您使用的是UICollectionView 因此您可以使用此方法更改其布局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM