2017-05-08 80 views
1

我有一個collectionView從網絡中提取數據,然後用戶刪除一個對象,我想顯示剩餘的對象。由於過去的噩夢在索引處刪除對象,並且雜耍我的本地數據與網絡版本同步,所以我可以做一個新的調用來獲取新的網絡數據(少於刪除的對象),因爲它沒有那麼多。這就是說,在仍然存在的collectionView中顯示新數據的最佳方法是什麼?我有點想扔出collectionView(與舊數據)並添加一個新的,但沒有這樣的方法可以做這樣的事情嗎?或者只是刷新整個collectionViewController?想在這裏找出最佳辦法,而不是一個黑客=)刪除對象後重新加載CollectionViewController?

func getPinsCheckLinksAndStartLoadAnimation() { 

     PinterestRequest().getPinterstPins(board: board) { (result) in 

      LinkCheck().checkLinks(pins: result, handler: { (testPinsWithBrokenLinks, error) in 

       self.pinsWithBrokenLinks = testPinsWithBrokenLinks 
      }) 

      self.startAnimating(self.view.frame.size, message: "Checking Pins...", messageFont: UIFont.boldSystemFont(ofSize: 16), type: .ballScaleMultiple, color: UIColor.red, padding: CGFloat(0), displayTimeThreshold: nil, minimumDisplayTime: nil, backgroundColor: UIColor.clear, textColor: UIColor.black) //see https://github.com/ninjaprox/NVActivityIndicatorView#defaults 
     } 

    } 
+0

我只是用更新的數據重新加載collectionView。 – toddg

+0

唯一的問題是,我使用加載動畫,然後將顯示在舊的collectionView單元格,直到它重新加載。 – GarySabo

+0

你的意思是像一個'UIRefreshControl'?發佈一些你的代碼,以便我可以得到一個更好的主意。 – toddg

回答

1

我想,如果你不希望保留的本地版本同步並刪除索引的單元格,然後你最好的選擇是做collectionView.reloadData()。

最好的方式和我做的方式是與領域。這是我與Firebase或我自己的服務器保持同步的本地數據庫。它通過在本地刪除對象來刪除索引處的單元格,然後可以使用api調用刪除服務器上的對象。

但除此之外,你只需重新加載整個collectionView。