Day-02

第一节 程序启动过程

1.了解main函数

  1. 掌握 UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    1>参数:参数1:argc 参数2:argv 参数3:nil。UIApplication 类名或子类名,默认nil代表UIApplication。参数4:UIApplication代理名。
    2> NSStringFromClass:作用:把类名转为字符串。好处:有提示、避免输入错误。
    3.UIApplicationMain底层实现功能
    1>根据参数2传递的类名创建UIApplication对象。
    2>创建UIApplication代理对象,指定UIApplication对象设置代理。
    3>开启主运行事件循环,处理事件。
    4>加载info.plist文件,判断是否指定main,如果是指定加载。
    4.了解run loop
    5.程序的启动过程
    1>打开程序->执行main函数->执行UIApplicationMain函数->初始化UIApplication(创建和设置代理,开启事件循环)->监听系统事件。

第二节 UIWindow

1.了解UIWindow

  1. 创建UIWindow
//1、创建窗口
  self.window= [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds];
//2、创建跟控制器
UIViewController*rootVc = [[UIViewControlleralloc] init];
//3、设置窗口的跟控制器(底层原理了解1、[self.window addSubview:rootVc.view]2、旋转功能)self.window.rootViewController= rootVc;
//4、显示窗口(底层原理了解1、self.window.hidden = NO2、设置主窗口)
 [self.windowmakeKeyAndVisible];
  1. 窗口的层级
 //5、补充窗口层级
self.window.windowLevel= UIWindowLevelNormal;

4.了解常见的窗口状态栏、键盘以及获取窗口的个数

第三节 创建控制器

1.代码创建
UIViewController*Vc = [[UIViewControlleralloc] init];
2. Storyboard创建
UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"Main"bundle:nil];
//UIViewController *Vc = [storyboard instantiateInitialViewController];//加载默控制器
UIViewController*Vc = [storyboard instantiateViewControllerWithIdentifier:@"green"];//加载指定控制器
3. Xib创建
ViewController*vc = [[ViewControlleralloc] initWithNibName:@"Vc"bundle:nil];    
![无标题.png](https://upload-images.jianshu.io/upload_images/2235937-8133cd386771c43a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

第四节 控制器View

1.了解loadView
2.自定义控制器view(底层的实现)
3.通过XIB加载控制器View(没有重写loadView且控制器名以Controller结尾)
1>先判断有没有指定nibName,指定了加载指定的xib
2>判断有没有“控制器前缀+View”的XIB,有加载
3>判断有没有和控制器同名的XIB,有加载
4>直接创建空的XIB

第五节 UIPicker View

1.UIPickerView的创建
2.UIPickerView的代理方法
3.UIPickerView的多级联动

#pragma mark -UIPickerViewDataSource
//返回有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView;
//返回第component列多少行
- (NSInteger)pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component;
#pragma mark -UIPickerViewDelegate
//返回第component列的宽度
- (CGFloat)pickerView:(UIPickerView*)pickerView widthForComponent:(NSInteger)component;
//返回第component列的高度
- (CGFloat)pickerView:(UIPickerView*)pickerView rowHeightForComponent:(NSInteger)component;
//返回第component列rowg行的标题
- (nullable NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
//返回第component列rowg行的富文本
- (nullableNSAttributedString*)pickerView:(UIPickerView*)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component;
//返回第component列rowg行控件
- (UIView*)pickerView:(UIPickerView*)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView*)view;
//选中事件
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;

3.UIPickerView数据取出
1>plist文件(懒加载)

@property(nonatomic,strong) NSArray*foods;
- (NSArray*)foods{
   if(_foods==nil) {
       NSString*filePath = [[NSBundlemainBundle] pathForResource:@"foods.plist"ofType:nil];
       _foods= [NSArrayarrayWithContentsOfFile:filePath];
   }
   return _foods;
}

2>网络数据

第六节 UITextField

  1. UITextField的创建

2.UITextField的代理方法

#pragma mark -UITextFieldDelegate
//是否循序文本字段开始编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField*)textField;
//开始编辑时触发
- (void)textFieldDidBeginEditing:(UITextField *)textField;
//是否允许文本字段结束编辑
- (BOOL)textFieldShouldEndEditing:(UITextField*)textField;
//结束编辑
- (void)textFieldDidEndEditing:(UITextField *)textField;
//是否允许改变内容
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string;
//否允许根据用户请求清除内容
- (BOOL)textFieldShouldClear:(UITextField *)textField;
//是否允许在按下回车键时结束编辑
- (BOOL)textFieldShouldReturn:(UITextField*)textField;

3.UITextField的键盘自定义
1>、inputView 属性
2>、Plist文件的存取

 NSString*filePath = [[NSBundlemainBundle] pathForResource:@"xxx.plist"ofType:nil];
NSArray*fileArray = [NSArrayarrayWithContentsOfFile:filePath];

3>、字典转模型的实现
3>、KVC的底层原理
字典遍历->调用set的方法
4、UIDatePicker的知识点
1>UIDatePicker的创建

UIDatePicker*datePicker = [[UIDatePickeralloc] init];
    datePicker.locale= [NSLocalelocaleWithLocaleIdentifier:@"zh"];
   datePicker.datePickerMode= UIDatePickerModeDate;
  [datePicker addTarget:selfaction:@selector(datePickChange:)forControlEvents:UIControlEventValueChanged];

2>日期格式的设置

NSDateFormatter*dateFormatter = [[NSDateFormatteralloc] init];
  dateFormatter.dateFormat= @"yyyy-MM-dd";
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  • 1.xcode5和xcode7区别 1.xcode7没有Frameworks文件夹,xcode7内部会自动帮你导入...
    彼岸的黑色曼陀罗阅读 501评论 0 2
  • 引用莎翁的一句话: "An honest tale speeds best being plainly told"...
    胡阿白阅读 660评论 0 4
  • 1.钩子函数mounted mounted钩子函数表示页面一加载进来就执行函数里的内容(和window.unloa...
    凡小君阅读 206评论 0 0
  • 在风中 暖阳的柔波 拂过耳际 碧绿的一小点 颤了一下 好奇的探出头来 和着风的拍子 跳起来了 不知道为什么呀 跳着...
    半溪冰阅读 169评论 0 3