第一种
CATransition *transition = [CATransition animation];
transition.duration = 0.4f;//时间
transition.type = kCATransitionPush;//动画的效果
transition.subtype = kCATransitionFromBottom;//动画的目的地
[self.view addSubview:_backGroundView];//这是是自己要做的事情一般是添加一个View 这个需要自己写
[self.view.layer addAnimation:transition forKey:@"animation"];
第二种
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:2.0f];//时间
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//效果
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES];
[self.view addSubview:_backGroundView];//要做的事情
[UIView commitAnimations];
第三种
[UIView animateWithDuration:1.0 animations:^{
_backGroundView.frame = CGRectMake(0, originY, _screenSize.width, 0);//要达到的状态值
}completion:^(BOOL finished){
[_backGroundView removeFromSuperview];
}];
总结一下,第一第二种页面切换用的多,第三种一般是对某个页面状态改变。
4月14日补充 第三种方法存在错误。里面的标签和页面不会统一,改进方法是改变的时候改变Y坐标的大小不改变宽度。
_backGroundView.frame = CGRectMake(0, 一个负数的Y, _screenSize.width, 0);//要达到的状态值
Y的值是负数,下拉框收缩起来。时间有限不多说。代码附上
可参考代码:
IOS动画下拉框