UICollectionView不动画绑定更改

时间:2015-01-11 20:32:07

标签: ios objective-c uicollectionview uicollectionviewlayout

我在UICollectionView中有一个UISplitViewController,其中包含一个自定义UICollectionViewLayout

  • prepareLayout以正确的方式存储属性(基于方向);
  • collectionViewContentSize根据方向返回正确的集合视图大小
  • layoutAttributesForItemAtIndexPath只返回存储的属性
  • layoutAttributesForElementsInRect检查交叉路口

我的布局在纵向曼景观模式中如下所示:

Portrait Landscape

现在,问题在于当我更改屏幕的方向时,我使用此功能来触发布局更新:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [headlinesCollectionView performBatchUpdates:nil completion:nil];
}

这会立即将单元格框架大小更改为新框架大小;然而,单元格位置变得动画。在尝试这个之前,我使用invalidateLayout,这甚至做得更糟,因为它没有设置大小或位置的动画。

我对如何使这项工作有任何想法?在动画发生时,单元格应调整大小并移动。

0 个答案:

没有答案