UICollectionView insert cells above maintaining position (like Messages.app)

后端 未结 20 2033
渐次进展
渐次进展 2020-12-02 07:23

By default Collection View maintains content offset while inserting cells. On the other hand I\'d like to insert cells above the currently displaying ones so that they appea

20条回答
  •  情深已故
    2020-12-02 08:23

    James Martin’s fantastic version converted to Swift 2:

    let amount = 5 // change this to the amount of items to add
    let section = 0 // change this to your needs, too
    let contentHeight = self.collectionView!.contentSize.height
    let offsetY = self.collectionView!.contentOffset.y
    let bottomOffset = contentHeight - offsetY
    
    CATransaction.begin()
    CATransaction.setDisableActions(true)
    
    self.collectionView!.performBatchUpdates({
        var indexPaths = [NSIndexPath]()
        for i in 0.. 0 {
            self.collectionView!.insertItemsAtIndexPaths(indexPaths)
        }
        }, completion: {
            finished in
            print("completed loading of new stuff, animating")
            self.collectionView!.contentOffset = CGPointMake(0, self.collectionView!.contentSize.height - bottomOffset)
            CATransaction.commit()
    })
    

提交回复
热议问题