PageController /自定义导航的最佳方法

时间:2014-12-04 20:03:05

标签: ios objective-c animation uiview uigesturerecognizer

我正在开发一款能够关注Google物料设计的应用。我需要顶部图像(一种自定义NavigationBar,而不是使用NavigationController),当我像屏幕控制器一样在屏幕上横向滑动时,淡入到新图像,同时在该自定义的顶部褪色并滑动新的标题标签导航栏背景图片。

我可以使用此代码设置动画,但是按下按钮或类似设置,我怎样才能用手指滑动同步?

    // Fade and slide title and image
myTitleLabelConstraint.constant = myTitleLabelConstraint.constant - 20;
[self.view setNeedsUpdateConstraints];
[UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:1.0 initialSpringVelocity:1.5 options:UIViewAnimationOptionTransitionNone animations:^{
    // Animate
    [self.view layoutIfNeeded];
    myTitleLabel.alpha = 1;
    topImageView.image = [UIImage imageNamed:@"blue_navBar.png"];
}completion:^(BOOL finished) {
    // Complete
}];

我需要这样做以及在3个ViewControllers - 2个UIViewControllers和1个​​UITableViewController之间滑动。我在考虑使用一个托管PageController的容器 - 这是一个很好的解决方案吗?

我查看了this教程,但我发现很难理解他的实际含义。 Scrollview - 为什么要使用它?

所以我的问题总结如下:如何动画我的自定义导航栏的标签和背景图像与用户的触摸同步,同时在3个ViewControllers之间设置动画,无论是否有PageController(至少使用PageController物理)?

非常感谢你们的帮助!

更新

这就是我的StoryBoard现在的样子:

enter image description here

仔细看看:

enter image description here

左侧ViewController是"主机"包含3个容器,而这三个容器中的每一个都链接到右侧的一个ViewControllers。

最诚挚的问候, 埃里克

1 个答案:

答案 0 :(得分:0)

您可以尝试在iOS中查看交互式过渡。如果您查找UIPercentDrivenInteractiveTransitions(在iOS 7中引入),它应该能够满足您的需求。您或多或少已拥有动画代码,UIPercentDrivenInteractiveTransitions允许您将UIPanGestureRecognizer连接到动画以擦除每个动画帧。这是一个非常好的blog,教会如何做到这一点。