ios开发注意事项小总结
一、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创建对象
最新文章
- GitHub的使用记录
- 在springmvc中,获取Connection接口
- boost库的使用(一)
- BJUI 转
- linux下php上传文件注意
- 测试通用的InsertOrUpdate
- git 恢复丢失的文件
- Mysql表锁、行锁、页锁
- js 的数学处理方法
- 【CF1141F1】Same Sum Blocks
- FCN 项目部分代码学习
- Typora开启行内公式
- (转)java程序员进入名企需要掌握哪些,立一个flag
- Java 始终要覆盖toString
- AtCoder Beginner Contest 082 B - Two Anagrams
- 机器学习:KNN-近邻算法
- Elasticsearch 5
- 高速入门:十分钟学会Python
- redis下的持久化保存
- 20181120-10 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 7
热门文章
- 多线程编程threading
- learning java 字符串常用操作
- 【JS】闭包的理解
- input file标签限制上传文件类型
- C++问题--Reis连接redisContext *pRedisContext = redisConnectWithTimeout(";127.0.0.1";, 6379, tv);pRedisContext->;errstr返回错误磁盘空间不足
- noi.ac #30 思维
- LibreOJ #528. 「LibreOJ β Round #4」求和
- subcode
- MySQL 基础之一
- POJ1635 Subway tree systems ——(判断树的同构,树的最小表示法)