Ipad 使用滑入式&;滑出子视图的动画
我首先要解释的是,我已经看到了很多关于这类特性的问题和答案,但我自己在实现它时仍然遇到问题。我使用的是ARC,而不是自动布局或故事板。我使用代码中的约束定义布局,因此我一直尝试实现动画的方式有点不同。最后,这是一个iPad应用程序 对于手头的特定问题,我有一个子视图,它从隐藏开始,但在操作发生时出现。我希望此子视图使用隐藏功能,但在它出现之后和隐藏之前,将其滑入和滑出。到目前为止,我已经完成了一半,并且能够让视图毫无问题地滑入。下面是实现这一点的代码Ipad 使用滑入式&;滑出子视图的动画,ipad,animation,uiview,subview,uiviewanimation,Ipad,Animation,Uiview,Subview,Uiviewanimation,我首先要解释的是,我已经看到了很多关于这类特性的问题和答案,但我自己在实现它时仍然遇到问题。我使用的是ARC,而不是自动布局或故事板。我使用代码中的约束定义布局,因此我一直尝试实现动画的方式有点不同。最后,这是一个iPad应用程序 对于手头的特定问题,我有一个子视图,它从隐藏开始,但在操作发生时出现。我希望此子视图使用隐藏功能,但在它出现之后和隐藏之前,将其滑入和滑出。到目前为止,我已经完成了一半,并且能够让视图毫无问题地滑入。下面是实现这一点的代码 detailView.hidden
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;
我得到的结果是,视图就像被隐藏一样消失了,它总是这样。在添加其他动画之前,是否需要删除添加到视图中的一个动画?还是我的CATTransferM3DMakeTransformation定义不正确?结果显示,在动画开始之前调用了detailView.hidden。我通过添加一个带有延迟的选择器来解决这个问题,该选择器包含一个隐藏视图的方法
[self performSelector:@selector(hideDetailView) withObject:nil afterDelay:.40];