前面iOS学习之UIPickerView控件的简单使用 用到的UIPickerView弹出来是通过 textField.inputView = selectPicker; textField.inputAccessoryView = doneToolbar; 这中方法来做的。如果UIPickerView或UIDatePicker控件通过其他按钮或事件激活的时候怎么能像系统那样弹出来呢?为了实现这个需求,就要用到动画效果了。
1、新建一个Single View App项目,在.xib文件中添加控件如下:
两个button,一个UIDatePicker。
2、创建xib和ViewController的连接
按住Control键创建三个控件对于的映射。
创建后viewController.h代码如下
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (retain, nonatomic) IBOutlet UIDatePicker *pickerView;
- (IBAction)popView:(id)sender;
- (IBAction)inView:(id)sender;
@property (nonatomic, retain) NSString *string;
@end
3、隐藏pickerView
- (void)viewDidLoad
{
[super viewDidLoad];
self.pickerView.frame = CGRectMake(0, 480, 320, 260);
}
把pickerView 放到屏幕以为下面。
4、弹出和弹回pickerView
在pickerView弹出来或回去的时候,设置动画
- (IBAction)popView:(id)sender {
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.6];//动画时间长度,单位秒,浮点数
[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
self.pickerView.frame = CGRectMake(0, 245, 320, 260);
[UIView setAnimationDelegate:self];
// 动画完毕后调用animationFinished
[UIView setAnimationDidStopSelector:@selector(animationFinished)];
[UIView commitAnimations];
}
- (IBAction)inView:(id)sender {
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.6];//动画时间长度,单位秒,浮点数
self.pickerView.frame = CGRectMake(0, 480, 320, 260);
[UIView setAnimationDelegate:self];
// 动画完毕后调用animationFinished
[UIView setAnimationDidStopSelector:@selector(animationFinished)];
[UIView commitAnimations];
}
-(void)animationFinished{
NSLog(@"动画结束!");
}
动画结束后回调动画结束的函数。
运行,弹出
第一个图片是弹出来到一半,第二个图片弹出全部。
4、代码块的方法做动画弹出pickerView
单独写个方法
- (void)ViewAnimation:(UIView*)view willHidden:(BOOL)hidden {
[UIView animateWithDuration:0.3 animations:^{
if (hidden) {
view.frame = CGRectMake(0, 480, 320, 260);
} else {
[view setHidden:hidden];
view.frame = CGRectMake(0, 245, 320, 260);
}
} completion:^(BOOL finished) {
[view setHidden:hidden];
}];
}
5、在Action中调用
- (IBAction)popView:(id)sender {
[self ViewAnimation:self.pickerView willHidden:NO];
}
- (IBAction)inView:(id)sender {
[self ViewAnimation:self.pickerView willHidden:YES];
}
这个方法更简单实用
PS:以上的方法可以用在TableViewCell点击cell时弹回pickerView等需求.
分享到:
相关推荐
IOS自定义弹出UIPickerView或UIDatePicker(动画效果)
iOS:用UIPickerView实现UIDatePicker效果。用UIPickerView实现UIDatePicker效果
ios应用源码之自定义风格uipickerview .
IOS应用源码之自定义风格UIPickerView.zip
IOS应用源码之自定义风格UIPickerView .rar
IOS应用源码——自定义风格UIPickerView.zip
IOS应用源码——自定义风格UIPickerView.rar
前两年IOS应用源码-主要是用于毕业设计学习的。
方便好用的弹出 UIPickerView/UIDatePicker https://github.com/pljhonglu/LewPickerController
IOS应用源码——UIPickerView选择多个选项效果.zip
UIPikerView时间选择器,自定义控件,选中颜色变化,取消和确定选中时间。开始进入选择器选中时间等操作!代理方法和控件代理及可实现
前两年IOS应用源码-主要是用于毕业设计学习的。
ios应用源码之在uipickerview 选择时,uitableviewcell自动填充值
自定义的UIPikerView,可以供各种项目使用,里面内容可以更改,将类拖进工程即可,需设置代理,有两个代理方法,一个是确定按钮,一个是取消按钮
自定义风格UIPickerView.zipIOS应用例子源码下载自定义风格UIPickerView.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
简单的弹出视图 基于UIWindow上面创建子视图 对UIPickerView 和 自定义AlertView有兴趣的童鞋可以下载学习分享使用 Q:305814832 Email: ioszhaoyi@163.com
简单的使用uiscrollview代替uipickerview时间选择器
iOS 年月份选择器 UIDatePicker UIPickerView
UIPickerView平常用的地方好像也不是很多,顶多就是一些需要选择的地方,这次项目需要这一个功能,我就单独写了一个简单的demo,效果图如下: 新增主页面弹出view,在主页面添加的代码 有个小问题就是第四个直接添加...