- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在 presentViewController
期间制作动画:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *toView = toVC.view;
UIView *fromView = fromVC.view;
UIView* containerView = [transitionContext containerView];
[containerView addSubview:toView];
NSTimeInterval duration = 0.35;
[UIView transitionFromView:fromView toView:toView duration:duration options:(self.reverse?UIViewAnimationOptionTransitionFlipFromLeft:UIViewAnimationOptionTransitionFlipFromRight) |
UIViewAnimationOptionAllowUserInteraction completion:^(BOOL finished) {
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
}];
}
这在 iOS7 上工作正常,但在 iOS8 上没有动画。
最佳答案
+transitionFromView:toView:duration:options:completion:
处理 View 层次结构的工作。你不应该需要 [containerView addSubview:toView]
。
+transitionFromView:toView:duration:options:completion:
内部的某处应该是以下代码:
UIView *superview = fromView.superview;
[fromView removeFromSuperview];
[superview addSubview:toView];
您是否尝试过删除 containerView
代码:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *toView = toVC.view;
UIView *fromView = fromVC.view;
NSTimeInterval duration = 0.35;
[UIView transitionFromView:fromView toView:toView duration:duration options:(self.reverse?UIViewAnimationOptionTransitionFlipFromLeft:UIViewAnimationOptionTransitionFlipFromRight) |
UIViewAnimationOptionAllowUserInteraction completion:^(BOOL finished) {
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
}];
}
关于objective-c - 为什么 iOS7 的 animateTransition 中的 UIView transitionFromView 可以,但 iOS8 没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969916/
我的目标是让流畅的动画在第一个 View Controller 中开始并在第二个 View Controller 中结束。 我正在使用符合 UIViewControllerAnimatedTransi
我在 View Controller 的中间有一个正方形。我想为它设置动画并将其移动到新的 View Controller 。但是,当我这样做时,它会重置为 (0,0)。有什么建议吗? -(void)
我正在使用一些 UIViewController包含在 UINavigationController 中. 一个人会收到一个推送 segue来自UIButton在 storyboard 上, 然后使用
当从 tableView 触发动画时,我遇到了一个使用 UIViewControllerContextTransitioning 的自定义转换的恼人问题 我遵循了许多教程,仅举几例: - http:/
我正在尝试实现向上/向下滑动以关闭 View Controller ,并且一切正常。如果我开始向上滑动,它会在向上的方向完成动画,反之亦然。 当用户首先向上滑动但随后决定向下滑动 View Contr
当用户在 tableViewController 的单元格中选择 imageView 到显示放大图像的焦点 View 时,我一直在我的自定义 Animator 类中使用以下方法进行转换。 imageV
我使用带有平移手势识别器的自定义交互式弹出过渡。我有 UIPercentDrivenInteractiveTransition 的子类来处理用户操作: class InteractiveTransit
我正在使用 iOS 7 引入的新自定义过渡,我正在尝试将 View 从我的“主” View Controller 移动到我的“详细” View Controller 中的 View ,有点像 Phot
我想在 presentViewController 期间制作动画: - (void)animateTransition:(id)transitionContext { UIViewContro
我是一名优秀的程序员,十分优秀!