【问题标题】:Using Slide In & Slide Out Animations for Subview为子视图使用滑入和滑出动画
【发布时间】:2013-08-20 14:27:32
【问题描述】:

首先我会解释说,我已经看到了很多关于此类功能的问题和答案,但我自己在实现它时仍然遇到问题。我正在使用 ARC,而不是使用自动布局或情节提要。我在代码中使用约束来定义布局,所以我尝试实现动画的方式有点不同。最后,这是一个 iPad 应用程序。

对于手头的具体问题,我有一个子视图,它一开始是隐藏的,但在发生操作时会出现。我希望这个子视图使用隐藏功能,但在它出现之后和隐藏之前滑入和滑出。到目前为止,我已经完成了一半,并且能够毫无问题地让视图滑入。以下是完成此操作的代码。

    detailView.hidden = NO;

// Perform Animation - Slide In
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
    animation.duration = kAnimationTimeout;
    animation.removedOnCompletion = NO;
    animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(800.0, 0.0, 1.0)];
    [detailView.layer addAnimation:animation forKey:nil];

但是,我试图让视图在隐藏之前滑出,但没有成功。下面是我为尝试完成此功能而添加的代码。

// Perform Animation - Slide Out
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
    animation.duration = kAnimationTimeout;
    animation.removedOnCompletion = NO;
    animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-800.0, 0.0, 1.0)];
    [detailView.layer addAnimation:animation forKey:nil];

    detailView.hidden = YES;

我得到的结果是视图就像它被隐藏一样消失了,它总是这样。在添加不同的动画之前,是否需要删除添加到视图中的一个动画?还是我的 CATransform3DMakeTranslation 定义不正确?

【问题讨论】:

    标签: ipad animation uiview subview uiviewanimation


    【解决方案1】:

    原来 detailView.hidden 在动画开始之前就被调用了。我通过添加一个包含隐藏视图的方法的延迟选择器解决了这个问题。

    [self performSelector:@selector(hideDetailView) withObject:nil afterDelay:.40];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多