我有scrollview和inside scrollview我有2个视图作为MainView和另一个SideMenuView。框翻转三维动画的侧面菜单
我想制作如下所示的动画。
任何想法需要做得到这个工作是什么?
我有scrollview和inside scrollview我有2个视图作为MainView和另一个SideMenuView。框翻转三维动画的侧面菜单
我想制作如下所示的动画。
任何想法需要做得到这个工作是什么?
的伪代码如下:
- (void)animateSideMenu{
homeView.frame = CGRectMake(sideMenuWidth, 0.0, (self.view.frame.size.width - sideMenuWidth), self.view.frame.size.height);
[UIView animateWithDuration:1.0 delay:0.0
options:UIViewAnimationOptionCurveLinear
animations:^{
sideMenu.frame = CGRectMake(0.0, 0.0, sideMenuWidth, sideMenuHeight);
[self flipAnimation];
} completion:^(BOOL finished) {
}];
}
- (void)flipAnimation{
CABasicAnimation *yRotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
yRotate.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, 0, 1, 0)];
yRotate.toValue = @(M_PI * 1.5);
yRotate.duration = 0.5;
yRotate.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
[sideMenu.layer addAnimation:yRotate forKey:@"yRotate"];
}
下面是开发这种类型的动画步骤:
试一下&如果有任何问题,请告诉我。
@fahim,对你有帮助吗? –
现在检查...它没有动画 –
我必须做'CABasicAnimation * yRotate = [CABasicAnimation animationWithKeyPath:@“transform.rotation.y”];'但这只是旋转侧菜单,这不是我正在寻找的。 .. –
我不会使用scrollview,而是使用UIPanGestureRecognizer来检测当前的“平移偏移量”,并计算当前动画的一小部分以及这两个视图的位置(让我们简化它,以便菜单是view1和其余的观点2)。然后我会简单地在.Changed状态下设置一个适当的转换。 在.Ended状态我会看看菜单是否更接近于打开或关闭,并创建一个与.toValue设置相应的动画。您应该使用CAAnimations或更好的动画,因为您可以暂停并移除它们,并且视图保持放置状态并且不会跳转到其初始位置(UIViewAnimate常常是这种情况)。
如果您在编写确切代码方面需要帮助,您可以在此填写,我将编辑我的答案。
如果你真的想使用滚动视图,你可以使用scrollViewDidScroll获得相同的值和分数。 –
有教程正是出于这个菜单,虽然它是在斯威夫特: https://www.raywenderlich.com/87268/3d-effect-taasky-swift
可能是你可以使用侧面菜单这样的动画,而不是你的。 https://github.com/Yalantis/Side-Menu.iOS –
@MeetDoshi:有很多替代品,但我想用这种结构做... –