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

大綱

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

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

二、選擇器UIPickerView

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

  2. 準(zhǔn)備數(shù)據(jù)(一維數(shù)組)

  3. 創(chuàng)建UIPickerView

  4. 設(shè)置代理
    3.1 設(shè)置 行、列 標(biāo)題
    3.2 刷新數(shù)據(jù)

  5. 設(shè)置數(shù)據(jù)源
    4.1 設(shè)置列數(shù)
    4.2 設(shè)置行數(shù)

  6. 添加到self.view

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

  8. 準(zhǔn)備數(shù)據(jù)(使用數(shù)組嵌套數(shù)組)

  9. 創(chuàng)建UIPickerView

  10. 設(shè)置代理
    3.1 設(shè)置 行、列 標(biāo)題
    3.2 刷新數(shù)據(jù)

  11. 設(shè)置數(shù)據(jù)源
    4.1 設(shè)置列數(shù)
    4.2 設(shè)置行數(shù)

  12. 添加到self.view

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

  14. 準(zhǔn)備數(shù)據(jù)(字典存數(shù)組)

  15. 創(chuàng)建UIPickerView

  16. 設(shè)置代理
    3.1 設(shè)置 行、列 標(biāo)題
    3.2 刷新數(shù)據(jù)

  17. 設(shè)置數(shù)據(jù)源
    4.1 設(shè)置列數(shù)
    4.2 設(shè)置行數(shù)

  18. 添加到self.view
    三、時間選擇器UIDatePicker
    項(xiàng)目:DatePicker0321

  19. UIDatePicker
    步驟:
    1.創(chuàng)建初始化
    2.設(shè)置屬性
    3.添加事件
    4.添加到self.view

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

正文

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

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

源碼:

    //1.不可變字典:NSDictionary
    //1.1 創(chuàng)建
    NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"鄭州",@"河南",@"石家莊",@"河北",@"南京",@"江蘇", nil];
    //1.2 根據(jù) 鍵 獲取字典中相對應(yīng)的值
    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 創(chuàng)建
    NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc]init];
    //2.2 增加 鍵-值 對
    [mutableDic setObject:@"張三" forKey:@"鍵 1"];
    [mutableDic setObject:@"李四" forKey:@"鍵 2"];
    //2.3 修改 修改 鍵 所對應(yīng)的 值
    [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維數(shù)組)
    項(xiàng)目:PickerView0321
    NSAttributedString:可以設(shè)置大小、顏色(NSString就不行)
    步驟:
  2. 準(zhǔn)備數(shù)據(jù)(一維數(shù)組)
  3. 創(chuàng)建UIPickerView
  4. 設(shè)置代理
    3.1 設(shè)置 行、列 標(biāo)題
    3.2 刷新數(shù)據(jù)
  5. 設(shè)置數(shù)據(jù)源
    4.1 設(shè)置列數(shù)
    4.2 設(shè)置行數(shù)
  6. 添加到self.view
    源碼:
@interface ViewController ()<UIPickerViewDelegate,UIPickerViewDataSource>
{
    NSArray *_provinceArr,*_heNanArr,*_heBeiArr,*_shanDongArr,*_guangDongArr;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    //提前準(zhǔn)備好數(shù)據(jù),放在數(shù)組中
    _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 協(xié)議方法
    //設(shè)置代理
    picker.delegate = self;
    //設(shè)置數(shù)據(jù)源
    //dataSource也是代理模式
    picker.dataSource = self;
    
    [self.view addSubview:picker];
}
#pragma mark - UIPickerViewDataSource
//設(shè)置列數(shù)
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}
//設(shè)置行數(shù)
- (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
//刷新數(shù)據(jù)
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    //選中第0列 刷新第1列
    if (component == 0)
    {
        //重新加載數(shù)據(jù)
        [pickerView reloadComponent:1];
        //讓第1列 從0行開始 顯示
        [pickerView selectRow:0 inComponent:1 animated:YES];
    }
}
//設(shè)置 每行、每列 的標(biāo)題
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if (component == 0)
    {
        //根據(jù)行號 獲取標(biāo)題
        return [_provinceArr objectAtIndex:row];
    }
    else
    {
        //首先 確定 第0列 選擇的 行號
        int rowNum = [pickerView selectedRowInComponent:0];
        //設(shè)置 第1列 每行的 標(biāo)題
        if (rowNum == 0)
        {
            return [_heNanArr objectAtIndex:row];
        }
        else
        {
            return [_heBeiArr objectAtIndex:row];
        }
    }
}
  1. 版本2(數(shù)組嵌套【相當(dāng)于C語言中的二維數(shù)組】)
    項(xiàng)目:PickerView_Arr&Arr0321
    步驟:
  2. 準(zhǔn)備數(shù)據(jù)(使用數(shù)組嵌套數(shù)組)
  3. 創(chuàng)建UIPickerView
  4. 設(shè)置代理
    3.1 設(shè)置 行、列 標(biāo)題
    3.2 刷新數(shù)據(jù)
  5. 設(shè)置數(shù)據(jù)源
    4.1 設(shè)置列數(shù)
    4.2 設(shè)置行數(shù)
  6. 添加到self.view
    源碼(與一維數(shù)組的區(qū)別):
    //1.組織數(shù)據(jù)
    _provinceArr = [[NSArray alloc]initWithObjects:@"河南",@"山東",@"陜西",@"安徽", nil];
    NSArray *heNanArr = [[NSArray alloc]initWithObjects:@"鄭州",@"平頂山",@"南陽", nil];
    NSArray *shanDongArr = [[NSArray alloc]initWithObjects:@"濟(jì)南",@"日照",@"菏澤",@"煙臺", nil];
    //1.1 創(chuàng)建另一個數(shù)組,存放城市數(shù)組
    _totalArr = [[NSArray alloc]initWithObjects:heNanArr,shanDongArr, nil];
  1. 版本3(字典)
    項(xiàng)目:PickerView_Dictionary0321
    步驟:
  2. 準(zhǔn)備數(shù)據(jù)(字典存數(shù)組)
  3. 創(chuàng)建UIPickerView
  4. 設(shè)置代理
    3.1 設(shè)置 行、列 標(biāo)題
    3.2 刷新數(shù)據(jù)
  5. 設(shè)置數(shù)據(jù)源
    4.1 設(shè)置列數(shù)
    4.2 設(shè)置行數(shù)
  6. 添加到self.view
    源碼:
    //1.通過 字典 組織數(shù)據(jù)
    NSArray *heNanArr = [[NSArray alloc]initWithObjects:@"鄭州",@"平頂山",@"南陽", nil];
    NSArray *shanDongArr = [[NSArray alloc]initWithObjects:@"濟(jì)南",@"日照",@"菏澤",@"煙臺", nil];
    //創(chuàng)建字典
    _provinceDic = [[NSDictionary alloc]initWithObjectsAndKeys:heNanArr,@"河南省",shanDongArr,@"山東省",shanXiArr, nil];

三、時間選擇器UIDatePicker
項(xiàng)目:DatePicker0321

  1. UIDatePicker
    步驟:
    1.創(chuàng)建初始化
    2.設(shè)置屬性
    3.添加事件
    4.添加到self.view

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

源碼:

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    UIDatePicker *datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 200, 320, 240)];
    datePicker.datePickerMode = UIDatePickerModeDate;
    //獲取當(dāng)前 最小的 日期時間
    datePicker.minimumDate = [NSDate date];
    //獲取從現(xiàn)在起 間隔多長時間
    //參數(shù)單位:秒
    datePicker.maximumDate = [NSDate dateWithTimeIntervalSinceNow:31*24*60*60];
    //添加點(diǎn)擊事件
    [datePicker addTarget:self action:@selector(selectDate:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:datePicker];
}
//點(diǎn)擊時間
- (void)selectDate:(UIDatePicker *)datePicker
{
    //獲取選中的時間
    NSDate *selectedDate = [datePicker date];
    
    //**************日期格式化**************
    //1.創(chuàng)建 日期格式化器
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    //2.設(shè)置日期格式
    //1999年12月1日 12點(diǎn)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.將格式化的日期,轉(zhuǎn)換為字符串
    NSString *dateStr = [dateFormatter stringFromDate:selectedDate];
    NSLog(@"%@",dateStr);
    _labDate.text = dateStr;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內(nèi)容