NSCollectionViewのscrollToIndexPaths:scrollPosition:
をアニメートしようとしていますが、このメッセージがコレクションビューのanimator
プロキシに送信された場合は、ドキュメントに従ってください。しかし、私はそれを働かせることはできません。NSCollectionViewのscrollToIndexPathsをアニメーション化する方法:scrollPosition :?
私はコレクションビューだけを含む非常に簡単なプロジェクトをセットアップし、1000個の100x100個のアイテムを作成しました。単純なアクションでは、表示可能なインデックスのパスを50ずつインクリメントし、それをスクロールしようとします。私のスクロールコードは次のようになります。
- (IBAction)increment:(id)sender {
NSIndexPath *visibleIndexPath = [[self.collectionView indexPathsForVisibleItems] anyObject];
NSIndexPath *toIndexPath = [NSIndexPath indexPathForItem:visibleIndexPath.item + 50 inSection:visibleIndexPath.section];
[self.collectionView.animator scrollToItemsAtIndexPaths:[NSSet setWithObject:toIndexPath] scrollPosition:NSCollectionViewScrollPositionCenteredHorizontally];
}
これは、対象インデックスパスにコレクションビューをジャンプしますがアニメーション化されません。私は、スクロールビューは、私はこの上で見つけた他のスレッドの一部に基づいて、あまりにも裏打ちされた層であることを保証しました:
プロジェクト内の他の唯一のコード設定数行ですviewDidLoad:
でのコレクションビューおよびフローレイアウト:
// Do any additional setup after loading the view.
NSCollectionViewFlowLayout *flowLayout = [[NSCollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake(100.f, 100.f);
flowLayout.scrollDirection = NSCollectionViewScrollDirectionHorizontal;
self.collectionView.collectionViewLayout = flowLayout;
[self.collectionView registerClass:[CollectionViewItem class] forItemWithIdentifier:@"identifier"];
誰もがscrollToIndexPaths:scrollPosition:
を使用してアニメーション化することができていますか?ドキュメンテーションは明らかに明快ですが、私はそれを働かせることはできません。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/clm/UIView/animateWithDuration:animations:
パーフェクト!それがトリックでした。 OS Xのアニメーションについてもっと包括的な知識があれば分かったはずですが、これを指摘したドキュメンテーションのどれも驚いていません。 – ppilone
ああ、私はその愚かな問題について夢中になった。私はここであなたの答えを見つけたことを神に感謝します!驚くばかり! – JFS