• 选择器


    1.日期旋转器(UIDatePicker)

     日期选择器有4种:日期,日期时间,时间和倒计时器

    UIDatePicker的属性设置:

    Mode:设置日期选择器的模式

    Local:设置本地化,日期选择器会按照本地习惯的文字显示

    Interval:设定间隔时间,单位为分钟

    Date:设定开始时间

    Constraints:设定能显示的最大和最小日期

    Timer:在倒计时定时器模式下倒计时的秒数。

    @property (weak, nonatomic) IBOutlet UIDatePicker *datePicker;

    @property (weak, nonatomic) IBOutlet UILabel *label;

        NSDate *date = self.datePicker.date;

        NSLog(@"the date picked is: %@",[date descriptionWithLocale:[NSLocale currentLocale]]);

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

        [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];

        NSLog(@"the date formate is:%@",[dateFormatter stringFromDate:date]);

        self.label.text = [dateFormatter stringFromDate:date];

    2.普通选择器(UIPickerView)

      需要两个协议UIPickerViewDataSource和UIPickerViewDelegate.

    案例草图:

      将省市信息放在provinces_cities.plist文件中,这个文件采用字典结构。

    @property (weak,nonatomic)IBOutlet UIPickerView *pickerView;

    @property (weak, nonatomic) IBOutlet UILabel *label;

    @property (nonatomic,strong) NSDictionary *pickerData;

    @property (nonatomic,strong) NSArray *pickerProvincesData;

    @property (nonatomic,strong) NSArray *pickerCitiesData;

    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view, typically from a nib.

        NSBundle *bundle = [NSBundle mainBundle];

        NSString *plistPath = [bundle pathForResource:@"provinces_cities" ofType:@"plist"];

        

        NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:plistPath ];

        self.pickerData = dict;

        

        self.pickerProvincesData = [self.pickerData allKeys];

        

        NSString *selectedProvice = [self.pickerProvincesData objectAtIndex:0];

        self.pickerCitiesData = [self.pickerData objectForKey:selectedProvice];

        [self.pickerView setDataSource:self];

        [self.pickerView setDelegate:self];

    }

    - (IBAction)onClick:(id)sender {

        NSInteger row1 = [self.pickerView selectedRowInComponent:0];

        NSInteger row2 = [self.pickerView selectedRowInComponent:1];

        NSString *selected1 = [self.pickerProvincesData objectAtIndex:row1];

        NSString *selected2 = [self.pickerCitiesData objectAtIndex:row2];

        NSString *title = [[NSString alloc]initWithFormat:@"%@,%@市",selected1,selected2 ];

        self.label.text = title;

        

    }

    #pragma mark -UIPickerViewDataSource

    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

    {

        return 2;

    }

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

    {

        if (component == 0) {

            return [self.pickerProvincesData count];

        }else{

            return [self.pickerCitiesData count];

        }

    }

    #pragma mark - UIPickerViewDelegate

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

    {

        if (component == 0) {

            return [self.pickerProvincesData objectAtIndex:row];

        }else{

            return [self.pickerCitiesData objectAtIndex:row];

        }

    }

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

    {

        if (component == 0) {

            NSString *selectedProvince = [self.pickerProvincesData objectAtIndex:row];

            NSArray *citiesArray = [self.pickerData objectForKey:selectedProvince];

            self.pickerCitiesData = citiesArray;

            [self.pickerView reloadComponent:1];

        }

    }

  • 相关阅读:
    Asp.Net Core 轻松学-被低估的过滤器
    Asp.Net Core 轻松学-利用文件监视进行快速测试开发
    Asp.Net Core 轻松学-利用xUnit进行主机级别的网络集成测试
    Asp.Net Core 轻松学-HttpClient的演进和避坑
    Asp.Net Core 轻松学-基于微服务的后台任务调度管理器
    Asp.Net Core 轻松学-一行代码搞定文件上传
    .NET Core 2.2 新增部分功能使用尝鲜
    Asp.NetCore轻松学-业务重点-实现一个简单的手机号码验证
    Asp.Net Core 轻松学-实现跨平台的自定义Json数据包
    Asp.Net Core 轻松学-利用 Swagger 自动生成接口文档
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5421752.html
Copyright © 2020-2023  润新知