인터페이스 작성기를 통해 NSArrayController에 바인딩 된 NSCollectionView가 있습니다. 세포가 시각적으로 새로운 위치로 이동하도록 프레임 원점을 애니메이션으로 만들고 싶습니다.NSCollectionViews 바인딩 배열 컨트롤러 -> 명시 적으로 NSCollectionViewItems 프레임 애니메이션
이전에는 collection 뷰 애니메이터 속성을 사용하여 performBatchUpdate의 애니메이션을 삽입, 삭제 및 이동하여 @ "frameOrigin"애니메이션이 트리거되도록했습니다. 그것은 바인딩을 사용하여 그런 식으로 작동하지 않는 것 같은가요?
바인딩을 통해 내 NSCollectionView를 지원하는 ArrayController에 정렬 또는 필터를 지정할 때 항목에 명시적인 프레임 애니메이션을 적용 할 수 있습니까?
여기 참조를 위해, 나의 현재의 분류 코드 :
- (void) setupSortUsingSortDescriptor:(NSSortDescriptor*) sortDescriptor selectedItem:(SynopsisMetadataItem*)item
{
NSAnimationContext.currentContext.allowsImplicitAnimation = YES;
NSAnimationContext.currentContext.duration = 0.5;
[NSAnimationContext beginGrouping];
self.resultsArrayControler.sortDescriptors = @[sortDescriptor];
[self updateStatusLabel];
if(item != nil)
{
NSUInteger index = [self.resultsArrayControler.arrangedObjects indexOfObject:item];
if(index != NSNotFound)
{
NSIndexPath* newItem = [NSIndexPath indexPathForItem:index inSection:0];
NSSet* newItemSet = [NSSet setWithCollectionViewIndexPath:newItem];
[self.resultsArrayControler setSelectionIndex:index];
[self.collectionView.animator scrollToItemsAtIndexPaths:newItemSet scrollPosition:NSCollectionViewScrollPositionCenteredVertically];
}
}
[NSAnimationContext endGrouping];
}
덕분에 어떤 통찰력에 감사드립니다!