国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

iOSUI進(jìn)階02

2019-11-14 18:31:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

01-pickerView簡(jiǎn)單使用

一.UipickerViewDataSource

// 返回有多少列- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;// 返回第component有多少行- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

二.UIPickerViewDelegate

// 返回第component列多寬- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component// 返回第component列多高- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component// 返回第component列第row行標(biāo)題- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component// NSAttributedString:富文本,可以描述文本的外觀屬性,顏色,字體,陰影,空心,圖文混排//- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component// 返回第component列第row行視圖控件- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view// 當(dāng)用戶選中某一行的時(shí)候調(diào)用// 選中第component列第row行的時(shí)候調(diào)用// 可以監(jiān)聽pickerView滾動(dòng)- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

02-注冊(cè)界面

一.UITextFieldDelegate

// 是否允許改變文本框的文字// 是否允許用戶輸入文字// 作用:攔截用戶的輸入- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{    return NO;}// 是否允許開始編輯// 允許編輯文本框- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField// 是否允許文本框結(jié)束編輯- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

二.自定義鍵盤 鍵盤由文本框inputView屬性決定

三.KVC底層實(shí)現(xiàn)

// setValuesForKeysWithDictionary底層實(shí)現(xiàn)//  利用KVC字典轉(zhuǎn)模型,    [flag setValuesForKeysWithDictionary:dict];    // 1.遍歷字典中的所有key    [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {        // 2.給模型的屬性賦值,利用KVC,把字典中的key當(dāng)做模型的屬性名使用,字典中的值傳遞給模型的屬性.        [flag setValue:obj forKey:key];        // name -> icon        // KeyPath:模型中的屬性名        // 屬性的值//        [flag setValue:dict[@"name"] forKey:@"name"];//        [flag setValue:dict[@"icon"] forKey:@"icon"];    }];// setValue:forKey:底層實(shí)現(xiàn)// 給模型中的icon屬性賦值// [flag setValue:dict[@"icon"] forKey:@"icon"];// 1.首先去尋找模型中有木有setIcon:方法,直接調(diào)用setIcon:方法,[flag setIcon:dict[@"icon"]]// 2.接著尋找模型中有沒有icon的屬性名,如果有,就直接賦值 icon = dict[@"icon"]// 3.接著尋找模型中有沒有_icon的屬性名,如果有,就直接賦值 _icon = dict[@"icon"]// 4.找不到,直接報(bào)錯(cuò),setValue:forUndefinedKey:

四.UIDatePicker

    // 創(chuàng)建一個(gè)UIDatePicker    UIDatePicker *datePicker = [[UIDatePicker alloc] init];    // 設(shè)置日期模型    datePicker.datePickerMode = UIDatePickerModeDate;    // 設(shè)置地區(qū),zh:中國(guó)    datePicker.locale = [NSLocale localeWithLocaleIdentifier:@"zh"];    // 監(jiān)聽UIDatePicker的選中的日期    [datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];

03-通過(guò)storyboard加載控制器

一.UIStoryboard:幫你加載storyboard文件

    // UIStoryboard : 幫你加載storyboard文件    // 加載storyboard文件    // name:storyboard文件名,不需要后綴名    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];    // 創(chuàng)建storyboard描述的控制器    // instantiateInitialViewController幫你加載箭頭指向的控制器    UIViewController *vc = [storyboard instantiateInitialViewController];    // 根據(jù)標(biāo)識(shí)符創(chuàng)建storyboard描述的控制器//    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"org"];

04-通過(guò)xib創(chuàng)建控制器

一.通過(guò)xib創(chuàng)建控制器原因:

是想通過(guò)Xib描述控制器的view 二.如何通過(guò)xib創(chuàng)建控制器

 1.讓xib與控制器產(chǎn)生聯(lián)系,設(shè)置xib的文件擁有者是控制器,這時(shí)候xib就描述這個(gè)控制器 2.連線,告訴控制器是哪個(gè)view在描述

05-控制器的view創(chuàng)建

一.loadView

什么時(shí)候調(diào)用:當(dāng)?shù)谝淮问褂每刂破鞯膙iew的時(shí)候就會(huì)調(diào)用

作用:加載控制器的view,自定義控制器的view

注意:

1.只要重寫loadView,必須自己手動(dòng)創(chuàng)建控制器的view

2.在沒給_view賦值之前,不能調(diào)用self.view;

二.loadView加載流程

三.xib加載控制器的view

init底層會(huì)調(diào)用initWithNibName:bundle:

// 通過(guò)xib創(chuàng)建XMGViewController控制器的view// 1.判斷下nibName有沒有值,如果有值,就會(huì)去加載nibName指定的xib// 2.如果nibName為空,會(huì)先去查找有沒有XMGView.xib,如果有就去加載// 3.如果沒有XMGView.xib,就會(huì)去加載根類名同名的xib:XMGViewController.xib// 4.如果還沒有找到,就生成一個(gè)空的view

四.控制器的view延遲加載

五.控制器view默認(rèn)的是幾乎透明的

06-導(dǎo)航控制器的基本使用

一.導(dǎo)航控制器必須要有一個(gè)根控制器

二.如果是導(dǎo)航控制器的子控制器可以直接拿到導(dǎo)航控制器

三.initWithRootViewController底層其實(shí)是調(diào)用導(dǎo)航控制器的push方法,把vc成為導(dǎo)航控制器的子控制器


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武功县| 定兴县| 祁门县| 武穴市| 晋中市| 西华县| 莱西市| 洪湖市| 遵化市| 雷山县| 象山县| 南郑县| 常州市| 防城港市| 衡东县| 萝北县| 中方县| 中牟县| 合川市| 永登县| 洞口县| 沁水县| 东乡县| 义乌市| 左贡县| 绥化市| 扎囊县| 嘉定区| 祥云县| 汉中市| 温州市| 宝应县| 新干县| 靖西县| 玉龙| 江油市| 英山县| 申扎县| 扎鲁特旗| 丹东市| 襄城县|