我有一個NSCollectionView通過接口生成器綁定到NSArrayController。我提供NSSortDescriptors和NSPredicates過濾和排序數組(這完全有效),但是,因爲我依靠隱式動畫通過NSAnimationContext唯一的密鑰我的CALayers請求動畫是@「隱藏」。我想動畫框架的原點,以便單元視覺移動到他們的新位置。排序NSCollectionViews綁定數組控制器 - >顯式動畫NSCollectionViewItems框架
在過去我使用集合視圖animator屬性來執行批次更新和動畫插入,刪除和移動,導致@「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];
}
謝謝,任何見解表示讚賞!