0
當我轉換到子View Controller時,是否可以在UICollectionView
中單獨爲每個項目設置動畫效果?我有一個UICollectionViewController
,當選擇一個物品時,我希望圍繞該物品的所有物品從選定的物品中彈開。UICollectionView在轉換過程中爲單個項目設置動畫
當我轉換到子View Controller時,是否可以在UICollectionView
中單獨爲每個項目設置動畫效果?我有一個UICollectionViewController
,當選擇一個物品時,我希望圍繞該物品的所有物品從選定的物品中彈開。UICollectionView在轉換過程中爲單個項目設置動畫
你描述的聲音聽起來像是在UICollectionView中的layoutTransition。我的建議是通過繼承UICollectionViewLayout
創建一個新的佈局,並覆蓋
- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
在那裏,你可以修改你的項目的框架來創建你正在尋找的效果。特別是,您可以跟蹤選定的indexPath並保持該項目不受影響。其餘的你可以這樣做:
CGRect selectedItemFrame = [[super layoutAttributesForItemAtIndexPath:self.selectedIndexPath] frame];
CGFloat xOffset = attributes.frame.origin.x <= selectedItemFrame.origin.x ? -400.0 : 400.0;
CGFloat yOffset = attributes.frame.origin.y <= selectedItemFrame.origin.y ? -600.0 : 600.0;
CGRect newFrame = CGRectOffset(attributes.frame, xOffset, yOffset);
attributes.frame = newFrame;
然後,只需觸發從一個佈局到另一個佈局的過渡。