我在viewcontroller视图上添加了一个集合视图,然后在iPad上以拆分视图模式运行一个应用程序。
我有UICollectionViewFlowLayout的自定义ViewFlowLayout子类。
我实现了- (void)prepareLayout
和- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset
,在其中返回了我喜欢的contentOffset。
当我更改应用程序视图的大小时,将调用- (void)viewDidLayoutSubviews
。
我调用的方法内部
[self.collectionView.collectionViewLayout invalidateLayout];
[self.collectionView layoutIfNeeded];
layoutIfNeeded
调用prepareLayout
的{{1}}方法
没关系!
之后,我正在等待UICollectionViewFlowLayout
的{{1}}调用
但什么也没发生
Apple的文档指出: 集合视图在调用prepareLayout和collectionViewContentSize方法之后调用此方法( targetContentOffsetForProposedContentOffset )。
顺便说一句,如果我旋转设备,一切正常,预期的行为: prepareLayout -> targetContentOffsetForProposedContentOffset