新浪项目笔记

一、LaunchScreen
 LaunchScreen产生原因:代替之前的启动图片
 好处:
 1.可以展示更多的东西
 2.可以只需要出一个尺寸的图片。
 
 启动图片的优先级
 启动图片 < LaunchScreen.xib

 模拟器尺寸不对
 程序中碰见模拟器尺寸不对,马上去找启动图片,默认模拟器的尺寸由启动图片决定。
 
二、程序启动原理
1.创建UIApplication对象
2.创建AppDelegate对象,并且成为UIApplication对象代理属性
3.开启主允许循环:目的让程序一直跑起来
4.加载info.plist文件,判断下info.plist文件里面有木有指定main.storyboard,如果指定,就会去加载main.storyboard
 
main.storyboard底层实现
1.初始化窗口
2.加载storyboard文件,并且创建箭头指向的控制器
3.把新创建的控制器作为窗口的跟控制器,让窗口现实

三、如何加载storyboard文件
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
 
 // instantiateInitialViewController:默认加载箭头指向的控制器
 
[storyboard instantiateInitialViewController];
 
 四、思想
 封装思想:如果以后项目中,有相同的功能,抽取一个类,封装好
 如何封装类:做到自己的事情全部交给自己管理。
 抽方法:一般一个功能就抽一个方法,以后开发中如果有相同的功能,找到对应的类就能找到功能
 
五、苹果模型
Item:就是苹果的模型命名规范
tabBarItem:决定着tabBars上按钮的内容
如果通过模型设置控件的文字颜色,只能通过文本属性(富文本:颜色,字体,空心,阴影,图文混排)
 
六、在ios7之后,默认会把UITabBar上面的按钮图片渲染成蓝色,一般需要告诉图片保持最原始的图片,或者在image.xcassest里面设置render模式

七、类的加载和初始化
 什么时候调用:程序一启动的时候就会把所有的类加载进内存
 作用:加载类的时候调用
+ (void)load
{

}
 
// 什么调用:当第一次使用这个类或者子类的时候调用
// 作用:初始化类
 + (void)initialize
{
 
}
 
八、appearance方法
appearance只要一个类遵守UIAppearance,就能获取全局的外观,UIView都可以获取所有的外观
 
获取所有的tabBarItem外观标识
UITabBarItem *item = [UITabBarItem appearance];
 
self -> CZTabBarController
获取当前这个类下面的所有tabBarItem
UITabBarItem *item = [UITabBarItem appearanceWhenContainedIn:self, nil]
 
 九、利用KVC可以把系统readonly的属性修改
 
十、UITabBar的items属性
 self.items UITabBarItem模型,有多少个子控制器就有多少个UITabBarItem模型
 
 十一:sizeToFit:默认会根据按钮的背景图片或者image和文字计算出按钮的最合适的尺寸
 
 十二:模型设计思想
  id:能调用任何对象的get,set方法,不能帮我们检查错误
 类方法:需要使用self创建对象

原文地址:https://www.cnblogs.com/quwujin/p/4898330.html