Dou*_*ith 19 objective-c uiviewcontroller uiview ios ios7
使用iOS 7的自定义视图控制器转换,我希望实现类似于iOS 7中Apple默认视图控制器转换的视觉效果.
(可以通过向左滑动窗口将视图控制器从左侧滑动到右侧的视图控制器,其中顶视图控制器从阴影的顶部滑出,导航栏移动.)

不过,我在实现这个方面遇到了很多困难.自定义视图控制器上的大多数教程都使用与默认视图非常不同的效果,以显示API的功能,但我想复制这个.
在我的实现子类中,<UIViewControllerAnimatedTransitioning>我有以下代码用于交互式动画:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
[transitionContext.containerView addSubview:toViewController.view];
[transitionContext.containerView addSubview:fromViewController.view];
fromViewController.view.layer.shadowOffset = CGSizeMake(0.0, 0.0);
fromViewController.view.layer.shadowColor = [UIColor blackColor].CGColor;
fromViewController.view.layer.shadowRadius = 5.0;
fromViewController.view.layer.shadowOpacity = 0.5;
[UIView animateWithDuration:[self transitionDuration:transitionContext] delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{
CGRect newFrame = fromViewController.view.frame;
newFrame.origin.x = CGRectGetWidth(fromViewController.view.bounds);
fromViewController.view.frame = newFrame;
} completion:^(BOOL finished) {
[transitionContext completeTransition:!transitionContext.transitionWasCancelled];
}];
}
Run Code Online (Sandbox Code Playgroud)
然而,阴影代码使它显着滞后(即使我使用新snapshot方法),我根本无法弄清楚如何操纵导航栏.
有没有人试图做类似的事情,并能够提供示例代码?
用于测试的示例项目,如果您愿意:http://cl.ly/0B3q1b390x0D
感谢objc.io获取基本代码.
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |