2017-05-27 5 views
2

私はUICollectionViewを私のアプリのモーダルビューコントローラに持っています。モーダルビューが起動すると、コレクションのセルの1つが、私のホームビューからモーダルビューに渡される特定のデータに基づいて選択されたものとして設定されます。コレクション内の選択したUICollectionViewCellにスクロールする方法はありますか?

コレクションビューの表示中にscrollToItem(at:at:animated:)を使用すると、選択したコレクションセルをプログラムでスクロールして表示する必要があります(cellForItemAt)。

cellForItemAtで利用できるindexPathを簡単に使用することはできますが、選択したセルをスクロールしてコレクションに取り込むことはできませんが、これは不可能なので、現在選択されているコレクションにスクロールする方法はわかりませんセルは、収集後に完全に取り込まれ、提示される。

現在表示されていないセルをループすることはできないように見えるため、すべてのコレクションセルをループしたり手動で選択したりするような強引なアプローチは使用できません。

ヘルプ?

答えて

0

トップに変数を追加します。

private var didLayoutFlag: Bool = false 

だけviewDidLayoutSubviews方法でインデックス番号(indexNO)を渡します。私は水平スクロールを使用しています。

override func viewDidLayoutSubviews() { 
      super.viewDidLayoutSubviews() 
      if self.colllecitonView != nil { 
       if !self.didLayoutFlag { 
        self.colllecitonView.scrollToItem(at:IndexPath(item: indexNO, section:0), at:.right, animated: false) 
        self.didLayoutFlag = true 
       } 
      } 
     } 
+0

私は何か不足しているかどうかはわかりませんが、コレクション内の選択したセルの識別にどのように役立ちますか?私の問題は 'scrollToItem()'をどこに置くべきか分からないということではなく、 'cellForItemAt'の範囲外で選択されたセルを特定する方法がわかりません。単一の特定の細胞が生じる。 – Foefirelord

関連する問題