一、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的属性修改
kvc可以快速的将字典数据转化为模型数据,键值需要对应

十、UITabBar的items属性
self.items UITabBarItem模型,有多少个子控制器就有多少个UITabBarItem模型

十一:sizeToFit:默认会根据按钮的背景图片或者image和文字计算出按钮的最合适的尺寸

十二:模型设计思想
id:能调用任何对象的get,set方法,不能帮我们检查错误
类方法:需要使用self创建对象

最新文章

  1. GitHub的使用记录
  2. 在springmvc中,获取Connection接口
  3. boost库的使用(一)
  4. BJUI 转
  5. linux下php上传文件注意
  6. 测试通用的InsertOrUpdate
  7. git 恢复丢失的文件
  8. Mysql表锁、行锁、页锁
  9. js 的数学处理方法
  10. 【CF1141F1】Same Sum Blocks
  11. FCN 项目部分代码学习
  12. Typora开启行内公式
  13. (转)java程序员进入名企需要掌握哪些,立一个flag
  14. Java 始终要覆盖toString
  15. AtCoder Beginner Contest 082 B - Two Anagrams
  16. 机器学习:KNN-近邻算法
  17. Elasticsearch 5
  18. 高速入门:十分钟学会Python
  19. redis下的持久化保存
  20. 20181120-10 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 7

热门文章

  1. 多线程编程threading
  2. learning java 字符串常用操作
  3. 【JS】闭包的理解
  4. input file标签限制上传文件类型
  5. C++问题--Reis连接redisContext *pRedisContext = redisConnectWithTimeout(&quot;127.0.0.1&quot;, 6379, tv);pRedisContext-&gt;errstr返回错误磁盘空间不足
  6. noi.ac #30 思维
  7. LibreOJ #528. 「LibreOJ β Round #4」求和
  8. subcode
  9. MySQL 基础之一
  10. POJ1635 Subway tree systems ——(判断树的同构,树的最小表示法)