iOS(总结)UIPickerView&&UIDatePicker&&toolBar

来源:互联网 发布:smail得到java 编辑:程序博客网 时间:2024/05/22 03:22

UIPickerView

轮转界面提供多值选项,和tableView挺类似

1.首先初始化,并设置大小,这里的大小设置是否有作用,再试。

    _picker = [[UIPickerViewalloc]initWithFrame:CGRectMake(0,100,375, 300)];

2.实现两个代理方法UIPickerViewDelegate,UIPickerViewDataSource

   _picker.delegate =self;

    _picker.dataSource =self;

3.加到view上类似于其他控件的使用

[self.viewaddSubview:_picker];

4.要实现的代理方法

----1.返回多少列

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{


   return1;

}

----2.返回多少行,每一列中的多少行

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{



    return self.flags.count;


}

----3.自定义pickview的行,用来显示内容的

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{

   return flagView;

}

----4.返回pickerView的高度

-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{

   return100;

}

----5.返回宽度

-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{


   return200;


}


----6.数据,可以直接显示内容的。

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

    NSArray *items =self.foods[component];

    

   return items[row];


}

----7.选中时候的,选中的效果

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

1》找到列

    NSArray *items =self.foods[component];

2》找到行

    NSString *str = items[row];

    NSLog(@"%@",str);

    NSLog(@"%ld,%ld",row,component);


}

----8.刷新第一列的。类似tableView的刷新

[_pickViewreloadComponent:1];

----9.不管之前第二列时几行,重新刷新之后都显示第二列的第二行

[_pickViewselectRow:1inComponent:1animated:YES];


UIDatePicker

1.初始化

_datePicker = [[UIDatePickeralloc]initWithFrame:CGRectMake(20,150,300, 200)];

2.设置中文时间

    _datePicker.locale = [[NSLocalealloc]initWithLocaleIdentifier:@"zh_CN"];

设置为中国、,如果不设置默认为英文显示

3.跟踪所有可用的地区,取出想要的地区

    NSLog(@"%@", [NSLocaleavailableLocaleIdentifiers]);

4.设置DatePicker的日历。默认为当天。

    [_datePickersetCalendar:[NSCalendarcurrentCalendar]];

5.timeZone 设置DatePicker的时区。默认为设置为:

    [_datePickersetTimeZone:[NSTimeZonedefaultTimeZone]];

6..countDownDuration设置DatePicker的倒计时间.

 ----1) 设置日期选择的模

    [_datePickersetDatePickerMode:UIDatePickerModeCountDownTimer];

 ----2)设置倒计时的时长  

  ----3倒计时的时长,以秒为单位

    [_datePickersetCountDownDuration:10 *60];

7.转换格式,显示当前的年月日

    [_datePickersetDatePickerMode:UIDatePickerModeDate];

8.默认的选中模式

    [_datePickersetDatePickerMode:UIDatePickerModeDateAndTime];

9显示小时和分钟

      [_datePickersetDatePickerMode:UIDatePickerModeCountDownTimer];

 [self.viewaddSubview:_datePicker];


设置textField输入框的输入方式为UIDatePicker

1.采用这种方法就可以看改变下面的输入框的问题

    UIDatePicker *p = [[UIDatePickeralloc]init];

2.text的输入选择位UIDatePicker日期选择器

text.inputView = p;

[self.viewaddSubview:text];

3.设置的一个toolBar

   UIToolbar *toolBar = [[UIToolbaralloc]initWithFrame:CGRectMake(0,0,375, 49)];

    UIBarButtonItem *bar = [[UIBarButtonItemalloc]initWithTitle:@"第一个"style:UIBarButtonItemStylePlaintarget:selfaction:nil];

4.加一个固定的长度作为弹簧效果

    UIBarButtonItem *barFit = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpacetarget:nilaction:nil];

    UIBarButtonItem *bar1 = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDonetarget:selfaction:@selector(bar:)];

5.将设置的按钮加到toolBar上

toolBar.items =@[bar,barFit,bar1];

6.toolBar加到text的输入框也就是UiDatePicker

text.inputAccessoryView = toolBar;

1 0