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创建对象
*/
ios开发 需要注意的地方、注意事项的更多相关文章
- iOS开发多线程在实际项目中的运用
实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行. 今天我们就来聊聊多线程在实际项目中的运用. 我们先来看看多线程的基础知识: 1.多线程的原理: 同一时间,CPU只能处理 ...
- IOS 开发中要注意的事项
1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS开发--引用计数与ARC
以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Refer ...
- iOS开发--Block
iOS开发--Block 1.什么是Block,block 的作用 ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理 (1)按钮 target-action 一 ...
- iOS开发200个tips总结(一)
tip 1 : 给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...
- GIT在iOS开发中的使用
前言 在iOS开发中,很多公司对项目的版本控制管理都使用了git,当然也有部分公司使用的是svn.当年我最初接触的是svn,觉得使用起来挺方便的,但是每次切分支都需要下载一份新的代码起来,这实在太麻烦 ...
- ios审核要注意的地方(转)
磨刀不误砍柴工.作为手机应用开发者,你需要向应用商店提交应用审核,迅速通过审核可以让你抢占先机.对苹果iOS应用开发者来说尤其如此.苹果应用商店的审核近乎吹毛求疵,下面这些清单可以让你知道苹果会在哪些 ...
- iOS开发核心语言Objective C —— 所有知识点总结
C和OC对比 OC中主要开发在什么平台上的应用程序?答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头?答:OC中新增关键字大部分是以@开头 OC中新增 ...
随机推荐
- 再来一个tensorflow的测试性能的代码
感觉这个比前一套,容易理解些~~ 关于数据提前下载的问题: https://www.jianshu.com/p/5116046733fe 如果使用keras的cifar10.load_data()函数 ...
- uiautomator2+python自动化测试1-环境准备
前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库.功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点 ...
- Spring Cloud Ribbon负载均衡(快速搭建)
Spring Cloud Ribbon 是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过 Spring Cloud 的封装, 可以让我们轻松地将面向服务的 ...
- page内置对象
- modbus-poll和modbus-slave工具的学习使用——modbus协议功能码1的解析
一.数据解析 上一文介绍了modbus工具的基本使用情况,但是还没用说明modbus中的协议的具体意义, 1.左边是slave,id=1,说明地址是1,f=01说明是功能码01,功能码是一个字节,说明 ...
- Mybatis框架-update节点元素的使用
今天我们学习一下mybatis框架中的update节点元素的使用 需求:修改用户表中的一条数据记录,修改编号为21的用户的密码 UserMapper.xml UserMapper.java 编写测试方 ...
- Spring Security 认证执行流程
本文基于 Spring Security 5.x 推荐阅读: 项目集成Spring Security SpringSecurity 整合 JWT 一.外层-正常登陆调用 项目启动后会自动寻找 User ...
- springboot(三)
SpringBoot 整合JdbcTemplate 1.创建一个springboot_jdbc项目 2.导入依赖 <dependency> <groupId>org.spri ...
- jar包更新
打包新的jar包 java -jar xx.jar 本地测试后 删除旧的jar包 然后要重启jar包
- 特征缩放(Feature Scaling)
特征缩放的几种方法: (1)最大最小值归一化(min-max normalization):将数值范围缩放到 [0, 1] 区间里 (2)均值归一化(mean normalization):将数值范围 ...