时间处理控件UIDatePicker与UIPickerView
来源:互联网 发布:eclipse java桌面程序 编辑:程序博客网 时间:2024/05/22 02:22
UIDatePicker依然继承自UIControl是经常用到的一个时间控件,方便我们用户输入日期.
让控制器监听值发生改变
#import <UIKit/UIKit.h>
@interface cooljuneViewController :UIViewController <UIPickerViewDataSource,UIPickerViewDelegate>
- (IBAction)dateChange:(UIDatePicker *)sender;
@property (weak, nonatomic) IBOutletUILabel *dateLable;
@property (weak, nonatomic) IBOutletUITextField *nameFiled;
@end
- (IBAction)dateChange:(UIDatePicker *)sender {
NSDate *date= sender.date;
NSDateFormatter *format=[[NSDateFormatteralloc]init];
format.dateFormat=@"yyyy-MM-dd hh:mm:ss";
//时间转字符串输出
self.dateLable.text=[formatstringFromDate:date];
UIDatePicker *picker=[[UIDatePickeralloc]init];
//设置显示格式
picker.datePickerMode=UIDatePickerModeDate;
//设置地区
picker.locale=[[NSLocalealloc]initWithLocaleIdentifier:@"zh_cn"];
//设置默认显示时间
picker.date
}
UIPickerView用于像datePicker一样滚动显示内容,多用于下拉选项,很多html中的select,而UIPickerView中可以显示字符串内容也可以显示其他组件view如图片view,Buttonview等,而如果要使用 UIPickerView必须实现UIPickerViewDataSource,UIPickerViewDelegate这两个协议,当控制器加载完成后,显示UIPickerView上面的内容会通过代理取获取内容,这个时候控制器就充当了代理,UIPickerViewDataSource提供数据来源,UIPickerViewDelegate获取内容以及监听发生变化。
#import <UIKit/UIKit.h>
@interface cooljuneViewController :UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
@end
#import "cooljuneViewController.h"
@interface cooljuneViewController ()
@property(nonatomic,strong)NSArray *firstCol;
@property(nonatomic,strong)NSArray *secondCol;
@end
@implementation cooljuneViewController
- (void)viewDidLoad
{
[superviewDidLoad];
self.firstCol=@[@"test",@"yte",@"fsd",@"55"];
self.secondCol=@[@"hh",@"ff",@"gg",@"kk"];
}
#pragma mark - 数据源方法
//返回第component列的行数
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return component==0?self.firstCol.count:self.secondCol.count;
}
#pragma mark 返回列数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return2;
}
//第component列内容
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if(component==0){
returnself.firstCol[row];
}else{
returnself.secondCol[row];
}
}
//选中某一行发生改变
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
if(component==0){
NSString *left=self.firstCol[row];
//根据传入列数返回显示的行数
int rightRow=[pickerViewselectedRowInComponent:1];
NSString *right=self.secondCol[rightRow];
NSLog(@"first=%@,secoden-%@",left,right);
}else{
NSString *right=self.secondCol[row];
int leftRow=[pickerViewselectedRowInComponent:0];
NSString *left=self.firstCol[leftRow];
NSLog(@"%@-%@",left,right);
}
}
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
UIView *flagView=[[UIViewalloc]init];
CGFloat viewHeight=40;
CGFloat viewWidth=200;
flagView.bounds=CGRectMake(0,0, viewWidth, viewHeight);
NSDictionary *dict=self.flags[row];
//国家名称
UILabel *label=[[UILabelalloc]init];
CGFloat lableWith=120;
label.frame=CGRectMake(0,0, lableWith, viewHeight);
label.text=dict[@"name"];
label.textAlignment=NSTextAlignmentCenter;
label.backgroundColor=[UIColorclearColor];
[flagViewaddSubview:label];
//图片
UIImageView *imageView=[[UIImageViewalloc]init];
imageView.frame=CGRectMake(lableWith,0, viewWidth-lableWith, viewHeight);
imageView.image=[UIImageimageNamed:dict[@"icon"]];
[flagViewaddSubview:imageView];
return flagView;
}
//修改每一行的高度
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return40;
}
总结常用方法(实现自协议里面的方法):
UIPickerViewDataSource协议
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 返回总列数
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 返回第component列的行数
UIPickerViewDelegate协议
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component; 修改列宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component; 修改行高
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
返回第component列第row行显示的字符串内容
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
返回第component列第row行显示的view内容
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
获取选中行的值- 时间处理控件UIDatePicker与UIPickerView
- UI控件之UIPickerView与UIDatePicker
- UIPickerView与UIDatePicker
- UIPickerView与UIDatePicker
- object-c之时间选择器UIDatePicker和UIpickerview筛选器
- 【IOS 开发学习总结-OC-48】★★ios开发之UI控件——UIDatePicker与 UIPickerView
- iOS的UIDatePicker时间控件
- UIPickerView--UIDatePicker--UITableView
- UIDatePicker和UIPickerView
- iOS开发UIDatePicker,UIPickerView
- UIPickerView和UIDatePicker
- UIKit-UIDatePicker和UIPickerView
- Unity调用IOS时间日期控件UIDatePicker
- UIActionSheet和UIDatePicker以及UIPickerView
- IOS中的UIPickerView和UIDatePicker
- UIPickerView和UIDatePicker常用属性
- iOS(总结)UIPickerView&&UIDatePicker&&toolBar
- iPhone第四节:UIDatePicker、UIPickerView
- lua的数据结构 -- 多维数组
- Swap file ".." already exists!
- 書劍恩仇錄 (無線電視翡翠台版本) - 愛情橋段的終局
- 看后有感!基本素质
- 黑马程序员_Java基础_IO
- 时间处理控件UIDatePicker与UIPickerView
- 書劍恩仇錄 (無線電視翡翠台版本) - 劇本終回由誰人敲定? 就是李添勝.
- 控制语句
- Objective-C之run loop详解
- 第一篇博客
- 各位觀眾,本人搬家了,後會有期.
- 庖丁解牛-----Live555源码彻底解密(RTP解包)
- [LeetCode]First Missing Positive,解题报告
- 程序员:30岁了我该怎么办?