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:
를 사용하여 애니메이션을 할 수 있었다? 설명서는 분명하게 들리지만 작동시킬 수는 없습니다. 당신의 애니메이션 태그 scrollToIndexPaths:scrollPosition
참조 퍼팅
완벽! 그것은 트릭을했다. 나는 내가 OS X에서 애니메이션에 대해 더 포괄적 인 지식을 가지고 있다면 그것을 알아 냈어야한다고 생각한다.하지만 나는 언급 한 문서 중 어느 것도 놀랍지 않다. – ppilone
어리석은 문제에 대해 미쳐 버렸습니다. 여기 당신의 대답을 발견해 주셔서 감사합니다! 굉장해! – JFS