摘要:本文将到你了解iOS开发之UIPickerView动画效果如何实现,希望本文对大家学IOS有所帮助。
iOS学习之UIPickerView控件的简单使用 用到的UIPickerView弹出来是通过 textField.inputView = selectPicker; textField.inputAccessoryView = doneToolbar; 这中方法来做的。如果UIPickerView或UIDatePicker控件通过其他按钮或事件激活的时候怎么能像系统那样弹出来呢?为了实现这个需求,就要用到动画效果了。
1、新建一个Single View App项目,在.xib文件中添加控件如下:
两个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. }
动画结束后回调动画结束的函数。
运行,弹出
第一个图片是弹出来到一半,第二个图片弹出全部。
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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号