我正在开发一款能够关注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现在的样子:
仔细看看:
左侧ViewController是"主机"包含3个容器,而这三个容器中的每一个都链接到右侧的一个ViewControllers。
最诚挚的问候, 埃里克
答案 0 :(得分:0)
您可以尝试在iOS中查看交互式过渡。如果您查找UIPercentDrivenInteractiveTransitions
(在iOS 7中引入),它应该能够满足您的需求。您或多或少已拥有动画代码,UIPercentDrivenInteractiveTransitions
允许您将UIPanGestureRecognizer
连接到动画以擦除每个动画帧。这是一个非常好的blog,教会如何做到这一点。