मैं एक कस्टम UICollectionViewFlowLayout
लिख रहा हूँ और मैंने देखा है कि initialLayoutAttributesForAppearingItemAtIndexPath:
और initialLayoutAttributesForAppearingDecorationElementOfKind:atIndexPath:
जब मैं संग्रह दृश्य पर performBatchUpdates:completion:
आह्वान सभी वर्गों के लिए बुलाया जाएगा। परिणाम यह है कि सभी अनुभागों में के बजाय एनीमेशन लागू किया गया है, जो कि नए जोड़े गए अनुभाग के बजाय है।UICollectionView performBatchUpdates: एनिमेट सभी वर्गों
[collectionView performBatchUpdates:^{
currentModelArrayIndex++;
[collectionView insertSections:[NSIndexSet indexSetWithIndex:currentModelArrayIndex]];
[collectionView reloadSections:[NSIndexSet indexSetWithIndex:currentModelArrayIndex-1]];
} completion:^(BOOL finished) {
[collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:currentModelArrayIndex] atScrollPosition:UICollectionViewScrollPositionTop animated:YES];
}];
क्या मैं अब तक सरल अद्यतन के एवज में performBatchUpdates:completion:
करने के लिए कॉल को हटा रहा है की कोशिश की है, लेकिन पहले से ही विद्यमान वर्गों (उन सभी को) किसी भी तरह एनिमेटेड रहे हैं। मैं यह सुनिश्चित करने के लिए जांच के समाधान के साथ आया हूं कि मैं पिछले अनुभाग में केवल के लेआउट विशेषताओं को बदल रहा हूं, लेकिन यह हैकी लगता है।
if (decorationIndexPath.section == [(id<UICollectionViewDataSource>)self.collectionView.delegate numberOfSectionsInCollectionView:self.collectionView] - 1)
{
layoutAttributes.alpha = 0.0f;
layoutAttributes.transform3D = CATransform3DMakeTranslation(-CGRectGetWidth(layoutAttributes.frame), 0, 0);
}
क्या यह केवल कुछ वर्गों को एनिमेट करने के बारे में जाने का उचित तरीका है?