1.tabBar如何自定义属性
(1)在ios中tabbar这个属性设置只读的,所有不能修改,更不能自定义,所有我们可以通过KVC进行设置。在我们写的自定义的tabBar类,
例如:[self setValue forKeyPath:@"tabBar"];
如果系统中有些属性是自读的如果想自定义就用KVC强制改变。
KVC的强大不止于此,他可以很简单的完成很多的功能。比如:
1 [self setValue: forKey:] [self setValue: forKeyPath:]
他们很容易访问到关系类中想树结构的路径属性,也forkeyPath中很容易的到很深类属性即使这个类型是数组和字典。
还有特别有趣的功能如果类的属性是数值型,可以实现数值的相加功能。
2.如果自己写的某个类的代理冲突了与本来的代理冲突了,必须在头类调用本类的代理。(在调用delegate是调用原来的还是你新加上的),这样一会报警的,因为和系统的delegate相同所以得写的名字不一样
3.学习到一个很危险代码,我以前遇到过就是在控制器上添加一个控制器的view,但是添加上去的时候view还在但是控制器已经死了,也不能响应控件中任何的事件。
4.只有全屏的图片才分3英寸和4英寸,选取R4模式,如果在iPhone6以上的适配全屏需要添加启动屏(LaunchImage)那样的组合
5.可以通过currentBackgroundImage和currentImage这两个属性获取图片背景的图片的大小进场设置
6.button几个内边距的知识:
6.1.contentEdgeInsets 他会影响button中的所有的内容,设置所有的内容与上下左右的边距
6.2.titleEdgeInsets button中的title上下左右边距的格式。(和他临近的控件)
6.3.imageEdgeInsets 影响button的imageView的边距。
7.0.如何获得项目的配置文件(info.plist)并且获得,存入版本号
[NSBundle mainBundle].infoDictionary
8.0.如何使对象写入文件(使用归档NSKeyedArchiver)
[NSkeyedArchiver archiveRootObject: toFile]
解归档:[NSKeyedArchiver unarchiveObjectWithFile];
注意在自定义对象存入沙盒的时候必须遵守NScoding协议
9.0.在使用compare方法的时候用NSComparisonResult结构体来判断
NSOrderedAscending=-1L
NSOrderedsame
NSOrderedDescending