2016-08-08 7 views
3

私は流星のアイオスを使ってメッセージアプリを構築していますが、すべてがうまくいっていますが、もっと機能をロードしようとしていますが、UICollectionViewはアイテムに負荷をかけてさらに多くのオプションをロードする

func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) { 



    if type == NSFetchedResultsChangeType.Insert { 

     self.blockOperations.append(
      NSBlockOperation(block: { [weak self] in 
       if let this = self { 

        this.collectionView!.insertItemsAtIndexPaths([newIndexPath!]) 

       } 
       }) 
     ) 
    } 
    else if type == NSFetchedResultsChangeType.Update { 
     self.blockOperations.append(
      NSBlockOperation(block: { [weak self] in 
       if let this = self { 


        this.collectionView!.reloadItemsAtIndexPaths([indexPath!]) 
       } 
       }) 
     ) 
    } 
    else if type == NSFetchedResultsChangeType.Move { 

     self.blockOperations.append(
      NSBlockOperation(block: { [weak self] in 
       if let this = self { 
        this.collectionView!.moveItemAtIndexPath(indexPath!, toIndexPath: newIndexPath!) 
       } 
       }) 
     ) 
    } 
    else if type == NSFetchedResultsChangeType.Delete { 

     self.blockOperations.append(
      NSBlockOperation(block: { [weak self] in 
       if let this = self { 
        this.collectionView!.deleteItemsAtIndexPaths([indexPath!]) 
       } 
       }) 
     ) 
    } 



} 

self.collectionView!.performBatchUpdates({() -> Void in 
      for operation: NSBlockOperation in self.blockOperations { 
       operation.start() 
      } 
      }, completion: { (finished) -> Void in 
       self.blockOperations.removeAll(keepCapacity: false) 


     }) 

私はコアデータと流星-IOSを使用しています:私はトップにスクロールするとき、私は

マイコード)複数の項目をロードしますが、挿入前と同じ位置にスクロールビューを維持したいです。誰が私が何をすることができるか知っている?私も成功せず、任意の他の多くのhow to set UITableView's scroll position to previous location when click "load earlier items" buttonを試してみました:(

は非常に多くcontentOffset.yの範囲は20〜50の間にif文私が作った!!

+0

こんにちは、あなたは解決しましたか? –

答えて

0

うんを、ありがとう。それならば、これらの値の間でそう(loadMoreを呼び出します)一度。

bool値がisLoadFinishを保存し、セル更新するまで待機してください。あなたはそれをloadMoreを(しないだろう場合)、複数の時間を呼び出します。

UXの経験のためにあなたが古いcontentOffsetを保存する必要がありますloadMore()を呼び出す前に.yを呼び出し、ロード後にリセットしてください。

私はそれをたくさん改善する必要があります、今のところ単純なハック。

幸運。

+0

私たちに説明可能なコードを教えてください –

関連する問題