UICollectionView补充视图不会为“in”或“out”设置动画

时间:2014-10-07 19:02:49

标签: ios objective-c uicollectionview uicollectionviewlayout

我有一个UICollectionView,它包含集合每个部分中每个项目的补充视图。当我尝试使用任何一个init / final方法来补充视图时:

- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath;

- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath;

我返回的属性似乎没有影响离开(或进入)集合视图的补充视图。补充意见的目的是作为"辐条"对于简历中的每个项目。辐条应该从视图的中心绘制到其相关项目。我正在尝试修改每个离开/到达辐条的属性的alpha,transform3d等,以使其从项目单元格中生长或缩小到中心。这些属性都不会影响进入/离开集合视图的补充视图。

我修改了教科书CircleLayout来演示我遇到的问题。我在这里分享了Github:https://github.com/dcoder2099/CircleLayout

c997dea82a提交记录了我的更改。在其中,我将UICollectionReusableView子类化为我的" SpokeReusableView"并在其初始化中,附加一个" SpokeLayer"通过CAShapeLayer的子类进行绘制的实例。辐条的原点和端点被建模为名为SpokeAttributes的UICollectionViewLayoutAttributes的子类中的附加属性。

变化的主要内容(至少,我期望的工作)是在CircleLayout中实现的补充视图的init / final方法的添加。

但我似乎无法让这些属性影响到达/离开的辐条。我不确定是不是因为我在CAShapeLayer中实现绘图的方式,或者我在SpokeReusableView中做错了什么。或者,如果它对所有项目和补充视图的布局属性管理不当都是平凡的事情。在阅读(并重新阅读和重新阅读)Apple的集合视图编程指南时,我认为基础动画系统(CA?)应该将属性作为补充应用观看进入/离开,但我只是没有看到它发生。

非常感谢任何帮助。

0 个答案:

没有答案