子视图应该在不应该进行动画处理时进行动画处理

时间:2019-06-21 19:08:44

标签: ios uicollectionview uikit uicollectionviewcell

我有一个视图控制器,里面有一个集合视图。它具有用于显示半张纸状态和全张纸状态的逻辑。 当我从半张纸状态导航到整张纸状态时,会有一个动画将我们从半张纸状态转换到整张纸状态。在此动画过程中,屏幕外的我的收藏集视图单元中的某些视图正在被动画化。 视图层次结构为UICollectionView-> CustomUICollectionViewCell-> CustomUIView(对于单元格)->(3个自定义视图,CustomLeftViewCustomMiddleView,{{1} }。 当视图控制器从半张纸状态变为全张纸状态时,这3个自定义视图都在动画中移动。

我认为我可以通过在CustomUIView的布局子视图中使用功能CustomRightView来解决此问题,因为这三个视图正在设置动画。但是,这三个自定义视图仍在设置动画。 当我覆盖要包装在+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation;中的3个自定义视图的layoutSubviews函数时,这些视图将不进行动画处理,而是按照我的期望以完整尺寸显示。

问题是双重的:

  1. 这些视图已在代码库的其他部分中使用,我需要进行测试以确保没有其他地方可以对这些视图进行动画处理。
  2. 我似乎不得不将这个performWithoutAnimation放在这些自定义视图的实现中,而不是在我的+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation;中,这似乎很不客气。

关于如何防止这种动画而不覆盖3个自定义子视图layoutSubviews的任何想法?

0 个答案:

没有答案