[英]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進行調試不會產生其他信息。
willRotateToInterfaceOrientation:duration:
,willAnimateRotationToInterfaceOrientation:duration:
和didRotateFromInterfaceOrientation:
不再在任何對自身進行全屏演示的視圖控制器上調用方法 - 例如,presentViewController:animated:completion:
您應該確保您的應用不使用這些方法來管理任何子視圖的布局。 相反,他們應該使用視圖控制器的
viewWillLayoutSubviews
方法,並使用視圖的邊界矩形調整布局。
由於您使用的是UICollectionView
,因此您可以使用此方法更改其布局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.