【问题标题】:Keeping a footer on screen in UICollectionView during an Add在添加期间在 UICollectionView 的屏幕上保留页脚
【发布时间】:2013-09-03 22:23:29
【问题描述】:

我有一个标准的 FlowLayout UICollectionView(垂直滚动、单节、固定大小的项目,但列数可变(例如,iphone 横向 2 v 水平 v 1 水平 v 3 或 ipad 上 4)。我使用的是 NSFetchedResultsController管理从 Core Data 显示的项目。

我在页脚补充中有一个添加按钮来添加新项目。当用户按下“添加”按钮时,我自然想添加一个项目,但我希望“添加”按钮保留在屏幕上(必要时向上滚动),以便他们可以轻松地再次按下它。

我目前正在检查 addItem 例程:

UICollectionViewLayoutAttributes * footerInfo = [self.collectionView layoutAttributesForSupplementaryElementOfKind:UICollectionElementKindSectionFooter atIndexPath:[NSIndexPath indexPathForRow:0 inSection:0 ]];
[self.collectionView scrollRectToVisible:footerInfo.frame animated:YES];

这很好用,除了当 FRC 在下一个运行循环中添加项目时,collectionView 然后再次将页脚向下移动到屏幕外。

我不能只为框架添加额外的行高,原因有两个:首先,扩展的矩形还没有在 controllerView 上,其次:如果它不是新行,我不需要那个空间它会不必要地反弹。

我想我可以在插入完成后为将来的时间/运行循环安排滚动检查,但我希望可能有更干净的东西。

【问题讨论】:

    标签: ios uicollectionview


    【解决方案1】:

    原来答案很简单:将滚动检查添加到self.collectionView performBatchUpdates:completion:的完成块中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 2019-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多