当分割视图控制器的主人隐藏时(纵向模式),核心动画停止?

时间:2013-09-06 05:41:00

标签: ios core-animation uisplitviewcontroller

我将闪烁动画应用于contentView的{​​{1}},以获取splitviewController的First viewController中的表格。我的问题是,当我使用splitViewController的tableViewcell属性隐藏FirstViewcontroller时动画停止

我已经创建了子类UItableViewCell,并在设置属性时添加了动画 我将动画添加到presentsWithGesture的{​​{1}},如下所示

contentView

我不知道是否ViewController的行为是在隐藏时在视图层次结构中停止核心动画,还是在我的代码中遗漏了某些内容。所以帮助我同行

1 个答案:

答案 0 :(得分:5)

是的,一旦隐藏了视图控制器,动画就会从视图的layer中删除。奇怪的是,有时动画即使view.layer.animationKeys.count == 0仍然存在,但通常不会。

最好的办法是在-viewWillAppear:-viewDidAppear: ...中为@vignesh_kumar启动动画,可能通过以下方法:

- (void)startAnimations
{
    NSArray *visibleCells = self.tableView.visibleCells;
    for (CustomTableViewCell *cell in visibleCells) {
        [cell animateIfNeeded];
    }
}

@doNotCheckMyBlog,在这里你可以调用启动headerView动画的方法。

除此之外,我猜测如果你背景应用程序然后恢复动画,动画也会停止。

您还需要在应用恢复时调用-startAnimations方法。例如,您的应用代理可以在其NSNotification-applicationDidBecomeActive:方法中发送-applicationWillEnterForeground:。您的MasterViewController可以观看此通知,并在收到时致电-startAnimations

如果您不需要在动画中返回相同的确切状态,那么这不应该是一个大问题。如果您需要在动画中返回与应用程序背景时相同的状态,那么您还需要保存状态,然后在重新启动动画时设置初始状态。