22字典NSDictionary_選擇器UIPickerView_NSAttributedString_時間選擇器UIDatePicker

大綱

一、字典NSDictionary
項目:Dictionary0321
無序存儲的,通過鍵值對的形式存在。

  1. NSDictionary
    1.創建并初始化
    2.獲取
  2. NSMutableDictionary
    1.創建并初始化
    2.獲取、增加、修改、刪除
    小提示:
    NSNumber對象 將基本數據類型轉換為 對象類型
    作用:將基本數據類型作為對象來操作。
       NSNumber *number = [NSNumber numberWithInt:1];

二、選擇器UIPickerView

  1. 版本1(1維數組)
    項目:PickerView0321
    NSAttributedString:可以設置大小、顏色(NSString就不行)
    步驟:

  2. 準備數據(一維數組)

  3. 創建UIPickerView

  4. 設置代理
    3.1 設置 行、列 標題
    3.2 刷新數據

  5. 設置數據源
    4.1 設置列數
    4.2 設置行數

  6. 添加到self.view

  7. 版本2(數組嵌套【相當于C語言中的二維數組】)
    項目:PickerView_Arr&Arr0321
    步驟:

  8. 準備數據(使用數組嵌套數組)

  9. 創建UIPickerView

  10. 設置代理
    3.1 設置 行、列 標題
    3.2 刷新數據

  11. 設置數據源
    4.1 設置列數
    4.2 設置行數

  12. 添加到self.view

  13. 版本3(字典)
    項目:PickerView_Dictionary0321
    步驟:

  14. 準備數據(字典存數組)

  15. 創建UIPickerView

  16. 設置代理
    3.1 設置 行、列 標題
    3.2 刷新數據

  17. 設置數據源
    4.1 設置列數
    4.2 設置行數

  18. 添加到self.view
    三、時間選擇器UIDatePicker
    項目:DatePicker0321

  19. UIDatePicker
    步驟:
    1.創建初始化
    2.設置屬性
    3.添加事件
    4.添加到self.view

  20. NSDateFormatter
    步驟:
    1.創建初始化
    2.確定格式(setDateFormat)
    3.將時間,按上述格式格式化

正文

一、字典NSDictionary
項目:Dictionary0321
無序存儲的,通過鍵值對的形式存在。

  1. NSDictionary
    1.創建并初始化
    2.獲取
  2. NSMutableDictionary
    1.創建并初始化
    2.獲取、增加、修改、刪除
    小提示:
    NSNumber對象 將基本數據類型轉換為 對象類型
    作用:將基本數據類型作為對象來操作。
    NSNumber *number = [NSNumber numberWithInt:1];

源碼:

    //1.不可變字典:NSDictionary
    //1.1 創建
    NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"鄭州",@"河南",@"石家莊",@"河北",@"南京",@"江蘇", nil];
    //1.2 根據 鍵 獲取字典中相對應的值
    NSString *str = [dic objectForKey:@"江蘇"];
//    NSLog(@"%@",str);
    //1.3 遍歷
    //獲取所有的Key
    NSArray *arrKeys = [dic allKeys];
    for (int i = 0; i < arrKeys.count; i++)
    {
        NSString *provinceKey = [arrKeys objectAtIndex:i];
        NSString *cityValue = [dic objectForKey:provinceKey];
//        NSLog(@"city = %@",cityValue);
    }
    
    //2.可變字典:NSMutableDictionary
    //2.1 創建
    NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc]init];
    //2.2 增加 鍵-值 對
    [mutableDic setObject:@"張三" forKey:@"鍵 1"];
    [mutableDic setObject:@"李四" forKey:@"鍵 2"];
    //2.3 修改 修改 鍵 所對應的 值
    [mutableDic setObject:@"小王" forKey:@"鍵 1"];
    //2.4 刪除
    [mutableDic removeObjectForKey:@"鍵 1"];
//    [mutableDic removeAllObjects];
//    [mutableDic removeObjectsForKeys:(nonnull NSArray *)];
    //2.5 遍歷
    NSArray *arrKeys2 = [mutableDic allKeys];
    for (int i = 0; i < arrKeys2.count; i++)
    {
        NSString *key = [arrKeys2 objectAtIndex:i];
        NSString *value = [mutableDic objectForKey:key];
        NSLog(@"Key = %@",key);
        NSLog(@"Value = %@",value);
    }

二、選擇器UIPickerView

  1. 版本1(1維數組)
    項目:PickerView0321
    NSAttributedString:可以設置大小、顏色(NSString就不行)
    步驟:
  2. 準備數據(一維數組)
  3. 創建UIPickerView
  4. 設置代理
    3.1 設置 行、列 標題
    3.2 刷新數據
  5. 設置數據源
    4.1 設置列數
    4.2 設置行數
  6. 添加到self.view
    源碼:
@interface ViewController ()<UIPickerViewDelegate,UIPickerViewDataSource>
{
    NSArray *_provinceArr,*_heNanArr,*_heBeiArr,*_shanDongArr,*_guangDongArr;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    //提前準備好數據,放在數組中
    _provinceArr = [[NSArray alloc]initWithObjects:@"河南",@"河北", nil];
    _heNanArr = [[NSArray alloc]initWithObjects:@"鄭州",@"開封",@"洛陽",@"平頂山",@"信陽",@"漯河",@"周口", nil];
    _heBeiArr = [[NSArray alloc]initWithObjects:@"石家莊",@"邯鄲",@"保定",@"唐山",@"秦皇島", nil];
    
    //1.選擇器
    UIPickerView *picker = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 200, 300, 100)];
    picker.backgroundColor = [UIColor redColor];
    //1.1 協議方法
    //設置代理
    picker.delegate = self;
    //設置數據源
    //dataSource也是代理模式
    picker.dataSource = self;
    
    [self.view addSubview:picker];
}
#pragma mark - UIPickerViewDataSource
//設置列數
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}
//設置行數
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    //component表示列號
    if (component == 0)
    {
        return _provinceArr.count;
    }
    else
    {
        //首先確定 第0列 選中的行號
        int rowNum = [pickerView selectedRowInComponent:0];
        
        if (rowNum == 0)
        {
            return _heNanArr.count;
        }
        else
        {
            return _heBeiArr.count;
        }
    }
}
#pragma mark - UIPickerViewDataSource
//刷新數據
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    //選中第0列 刷新第1列
    if (component == 0)
    {
        //重新加載數據
        [pickerView reloadComponent:1];
        //讓第1列 從0行開始 顯示
        [pickerView selectRow:0 inComponent:1 animated:YES];
    }
}
//設置 每行、每列 的標題
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if (component == 0)
    {
        //根據行號 獲取標題
        return [_provinceArr objectAtIndex:row];
    }
    else
    {
        //首先 確定 第0列 選擇的 行號
        int rowNum = [pickerView selectedRowInComponent:0];
        //設置 第1列 每行的 標題
        if (rowNum == 0)
        {
            return [_heNanArr objectAtIndex:row];
        }
        else
        {
            return [_heBeiArr objectAtIndex:row];
        }
    }
}
  1. 版本2(數組嵌套【相當于C語言中的二維數組】)
    項目:PickerView_Arr&Arr0321
    步驟:
  2. 準備數據(使用數組嵌套數組)
  3. 創建UIPickerView
  4. 設置代理
    3.1 設置 行、列 標題
    3.2 刷新數據
  5. 設置數據源
    4.1 設置列數
    4.2 設置行數
  6. 添加到self.view
    源碼(與一維數組的區別):
    //1.組織數據
    _provinceArr = [[NSArray alloc]initWithObjects:@"河南",@"山東",@"陜西",@"安徽", nil];
    NSArray *heNanArr = [[NSArray alloc]initWithObjects:@"鄭州",@"平頂山",@"南陽", nil];
    NSArray *shanDongArr = [[NSArray alloc]initWithObjects:@"濟南",@"日照",@"菏澤",@"煙臺", nil];
    //1.1 創建另一個數組,存放城市數組
    _totalArr = [[NSArray alloc]initWithObjects:heNanArr,shanDongArr, nil];
  1. 版本3(字典)
    項目:PickerView_Dictionary0321
    步驟:
  2. 準備數據(字典存數組)
  3. 創建UIPickerView
  4. 設置代理
    3.1 設置 行、列 標題
    3.2 刷新數據
  5. 設置數據源
    4.1 設置列數
    4.2 設置行數
  6. 添加到self.view
    源碼:
    //1.通過 字典 組織數據
    NSArray *heNanArr = [[NSArray alloc]initWithObjects:@"鄭州",@"平頂山",@"南陽", nil];
    NSArray *shanDongArr = [[NSArray alloc]initWithObjects:@"濟南",@"日照",@"菏澤",@"煙臺", nil];
    //創建字典
    _provinceDic = [[NSDictionary alloc]initWithObjectsAndKeys:heNanArr,@"河南省",shanDongArr,@"山東省",shanXiArr, nil];

三、時間選擇器UIDatePicker
項目:DatePicker0321

  1. UIDatePicker
    步驟:
    1.創建初始化
    2.設置屬性
    3.添加事件
    4.添加到self.view

  2. NSDateFormatter
    步驟:
    1.創建初始化
    2.確定格式(setDateFormat)
    3.將時間,按上述格式格式化

源碼:

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    UIDatePicker *datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 200, 320, 240)];
    datePicker.datePickerMode = UIDatePickerModeDate;
    //獲取當前 最小的 日期時間
    datePicker.minimumDate = [NSDate date];
    //獲取從現在起 間隔多長時間
    //參數單位:秒
    datePicker.maximumDate = [NSDate dateWithTimeIntervalSinceNow:31*24*60*60];
    //添加點擊事件
    [datePicker addTarget:self action:@selector(selectDate:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:datePicker];
}
//點擊時間
- (void)selectDate:(UIDatePicker *)datePicker
{
    //獲取選中的時間
    NSDate *selectedDate = [datePicker date];
    
    //**************日期格式化**************
    //1.創建 日期格式化器
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    //2.設置日期格式
    //1999年12月1日 12點11分5秒 1999-12-1 12:11:5
    //yyyy-MM-dd
    //hh:mm:ss 12小時制
    //hh:mm:ss a 12小時制(a:上下午)
    //HH:mm:ss  24小時制
    [dateFormatter setDateFormat:@"yyyy年MM月dd日 hh時mm分ss秒 a"];
//    [dateFormatter setAMSymbol:@"上午好"];
    [dateFormatter setPMSymbol:@"下午好"];
    
    //3.將格式化的日期,轉換為字符串
    NSString *dateStr = [dateFormatter stringFromDate:selectedDate];
    NSLog(@"%@",dateStr);
    _labDate.text = dateStr;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容