iOS开发之UIPickerView动画效果如何实现
白羽 2018-06-05 来源 :网络 阅读 1489 评论 0

摘要:本文将到你了解iOS开发之UIPickerView动画效果如何实现,希望本文对大家学IOS有所帮助。



iOS学习之UIPickerView控件的简单使用 用到的UIPickerView弹出来是通过 textField.inputView = selectPicker;   textField.inputAccessoryView = doneToolbar; 这中方法来做的。如果UIPickerView或UIDatePicker控件通过其他按钮或事件激活的时候怎么能像系统那样弹出来呢?为了实现这个需求,就要用到动画效果了。


1、新建一个Single View App项目,在.xib文件中添加控件如下:

 iOS开发之UIPickerView动画效果如何实现

两个button,一个UIDatePicker。

2、创建xib和ViewController的连接

按住Control键创建三个控件对于的映射。

创建后viewController.h代码如下

[cpp] view plain copy
1. #import <UIKit/UIKit.h>  
2.   
3. @interface ViewController : UIViewController  
4. @property (retain, nonatomic) IBOutlet UIDatePicker *pickerView;  
5. - (IBAction)popView:(id)sender;  
6. - (IBAction)inView:(id)sender;  
7. @property  (nonatomic, retain) NSString *string;  
8. @end  
3、隐藏pickerView
[cpp] view plain copy
1. - (void)viewDidLoad  
2. {  
3.     [super viewDidLoad];  
4.     self.pickerView.frame = CGRectMake(0, 480, 320, 260);  
5. }  
把pickerView 放到屏幕以为下面。
4、弹出和弹回pickerView
在pickerView弹出来或回去的时候,设置动画
[cpp] view plain copy
1. - (IBAction)popView:(id)sender {  
2.       
3.     CGContextRef context = UIGraphicsGetCurrentContext();  
4.     [UIView beginAnimations:nil context:context];  
5.     [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
6.     [UIView setAnimationDuration:0.6];//动画时间长度,单位秒,浮点数  
7.     [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];  
8.     self.pickerView.frame = CGRectMake(0, 245, 320, 260);  
9.       
10.     [UIView setAnimationDelegate:self];  
11.     // 动画完毕后调用animationFinished  
12.     [UIView setAnimationDidStopSelector:@selector(animationFinished)];  
13.     [UIView commitAnimations];  
14. }  
15.   
16. - (IBAction)inView:(id)sender {  
17.     CGContextRef context = UIGraphicsGetCurrentContext();  
18.     [UIView beginAnimations:nil context:context];  
19.     [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
20.     [UIView setAnimationDuration:0.6];//动画时间长度,单位秒,浮点数  
21.     self.pickerView.frame = CGRectMake(0, 480, 320, 260);  
22.       
23.     [UIView setAnimationDelegate:self];  
24.     // 动画完毕后调用animationFinished  
25.     [UIView setAnimationDidStopSelector:@selector(animationFinished)];  
26.     [UIView commitAnimations];  
27. }  
28. -(void)animationFinished{  
29.     NSLog(@"动画结束!");  
30. }

 

动画结束后回调动画结束的函数。

运行,弹出

  

第一个图片是弹出来到一半,第二个图片弹出全部。

iOS开发之UIPickerView动画效果如何实现

4、代码块的方法做动画弹出pickerView

单独写个方法

[cpp] view plain copy
1. - (void)ViewAnimation:(UIView*)view willHidden:(BOOL)hidden {  
2.       
3.     [UIView animateWithDuration:0.3 animations:^{  
4.         if (hidden) {  
5.             view.frame = CGRectMake(0, 480, 320, 260);  
6.         } else {  
7.             [view setHidden:hidden];  
8.             view.frame = CGRectMake(0, 245, 320, 260);  
9.         }  
10.     } completion:^(BOOL finished) {  
11.         [view setHidden:hidden];  
12.     }];  
13. }  
5、在Action中调用
[cpp] view plain copy
1. - (IBAction)popView:(id)sender {  
2.   
3.     [self ViewAnimation:self.pickerView willHidden:NO];  
4. }  
5.   
6. - (IBAction)inView:(id)sender {  
7.     [self ViewAnimation:self.pickerView willHidden:YES];  
8.   
9. }

这个方法更简单实用

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


 

 


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程