のUICollectionView
と 2 つのサブクラスがありUICollectionViewFlowLayout
ます。セルが選択されたらsetCollectionViewLayout:animated:
、レイアウトを切り替えるために呼び出します。トランジションが完了すると、選択したセルが中央に配置されますが、これで問題ありません。
セルを実際に選択せずに、同じセンタリング動作を実行できますか? さまざまなメソッドを呼び出そうとしましたがsetContentOffset:animated:
、成功しませんでした。contentOffset
または、表示するレイアウトに自己定義を指定できますか?
selected
より明確にするために、セルのプロパティを変更せずに次のようにしたいと思います。
編集#1
これは私がすでに持っているものです:
[self.collectionView selectItemAtIndexPath:indexPath animated:NO scrollPosition:UICollectionViewScrollPositionNone];
[self.collectionView setCollectionViewLayout:layout animated:YES];
問題ないようです: https://www.dropbox.com/s/9u6cnwwdbe9vss0/17249646-0.mov
しかし、スキップするとselectItemAtIndexPath
:
[self.collectionView setCollectionViewLayout:layout animated:YES];
[self.collectionView scrollRectToVisible:targetFrame animated:YES];
これはそれほど細かいものではありません (手を振るアニメーションのようなものです): https://www.dropbox.com/s/s3u2eqq16tmex1v/17249646-1.mov