最近公司项目里面用到PikerView,所以在自己总结之后来和大家分享一下,这个视图自带的动画比较不错,使用也方便,适合多行信息的显示和事件选择,先说说系统自带的datePikerView 有了这个你就可以轻松的实现时间日期的选择
创建对象
UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0,0,320,150);
效果
接下来是PikerView
PikerView的穿件和TableView创建相似,遵循两个协议
<UIPickerViewDataSource,UIPickerViewDelegate>
开始创建PikerView
UIPikerView * mypiker = [[UIPickerViewalloc]initWithFrame:CGRectMake(0,100, self.view.frame.size.width,250)];
mypiker.delegate =self;
mypiker.dataSource =self;
[self.viewaddSubview:mypiker];
// 返回一共有几列 (几个分区)
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
// 返回每一列有几个(每个区里面有几行)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return10;
}
// 每一列的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
return40;
}
// 每一列的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
// 自定义宽度
if (pickerView ==mypiker) {
CGFloat aa =self.view.frame.size.width / 3;
return aa;
}
//返回系统宽度
return80;
}
// 标准返回字符串的对象 (相当于tableview 的cell)
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
// 每一个分区的每一行的内容
return @“aaaaa”;
}
// 特别神奇的是,PikerView的选择事件是在滑动结束的时候自动实现
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//事件内容
NSLog(@“这是第%d个区,%d行”,component,row);
}
代码可复制粘贴,注意有中文字符,自己改一下就OK~