/*

一、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开发 需要注意的地方、注意事项的更多相关文章

  1. iOS开发多线程在实际项目中的运用

    实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行. 今天我们就来聊聊多线程在实际项目中的运用. 我们先来看看多线程的基础知识: 1.多线程的原理: 同一时间,CPU只能处理 ...

  2. IOS 开发中要注意的事项

    1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ...

  3. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  4. iOS开发--引用计数与ARC

    以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Refer ...

  5. iOS开发--Block

    iOS开发--Block 1.什么是Block,block 的作用 ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理 (1)按钮 target-action   一 ...

  6. iOS开发200个tips总结(一)

    tip 1 :  给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...

  7. GIT在iOS开发中的使用

    前言 在iOS开发中,很多公司对项目的版本控制管理都使用了git,当然也有部分公司使用的是svn.当年我最初接触的是svn,觉得使用起来挺方便的,但是每次切分支都需要下载一份新的代码起来,这实在太麻烦 ...

  8. ios审核要注意的地方(转)

    磨刀不误砍柴工.作为手机应用开发者,你需要向应用商店提交应用审核,迅速通过审核可以让你抢占先机.对苹果iOS应用开发者来说尤其如此.苹果应用商店的审核近乎吹毛求疵,下面这些清单可以让你知道苹果会在哪些 ...

  9. iOS开发核心语言Objective C —— 所有知识点总结

    C和OC对比 OC中主要开发在什么平台上的应用程序?答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头?答:OC中新增关键字大部分是以@开头 OC中新增 ...

随机推荐

  1. 再来一个tensorflow的测试性能的代码

    感觉这个比前一套,容易理解些~~ 关于数据提前下载的问题: https://www.jianshu.com/p/5116046733fe 如果使用keras的cifar10.load_data()函数 ...

  2. uiautomator2+python自动化测试1-环境准备

    前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库.功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点 ...

  3. Spring Cloud Ribbon负载均衡(快速搭建)

    Spring Cloud Ribbon 是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过 Spring Cloud 的封装, 可以让我们轻松地将面向服务的 ...

  4. page内置对象

  5. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码1的解析

    一.数据解析 上一文介绍了modbus工具的基本使用情况,但是还没用说明modbus中的协议的具体意义, 1.左边是slave,id=1,说明地址是1,f=01说明是功能码01,功能码是一个字节,说明 ...

  6. Mybatis框架-update节点元素的使用

    今天我们学习一下mybatis框架中的update节点元素的使用 需求:修改用户表中的一条数据记录,修改编号为21的用户的密码 UserMapper.xml UserMapper.java 编写测试方 ...

  7. Spring Security 认证执行流程

    本文基于 Spring Security 5.x 推荐阅读: 项目集成Spring Security SpringSecurity 整合 JWT 一.外层-正常登陆调用 项目启动后会自动寻找 User ...

  8. springboot(三)

    SpringBoot 整合JdbcTemplate 1.创建一个springboot_jdbc项目  2.导入依赖 <dependency> <groupId>org.spri ...

  9. jar包更新

    打包新的jar包 java -jar xx.jar 本地测试后 删除旧的jar包 然后要重启jar包

  10. 特征缩放(Feature Scaling)

    特征缩放的几种方法: (1)最大最小值归一化(min-max normalization):将数值范围缩放到 [0, 1] 区间里 (2)均值归一化(mean normalization):将数值范围 ...