首先,写这篇文章的主要目的是为了巩固自己的基础知识,同时查缺补漏。
其次,这篇文章会以问答的形式展现。可以理解为面试题集??毕竟自己记录看的。
1.UIImage的两种加载形式?
1)+ (UIImage *)ImageNamed:(NSString *)name;
2) + (UIImage *)imageWithContentsOfFile:(NSString *)path;
- (id)initWtihContentsOfFile:(NSString *)path;
区别:方法1)是有缓存的,图片占用的内存会一直停留在程序中。方法2)中所用的图片所占的内存在一些特定操作后会被清楚。同时path参数所用的图片路径为全路径。
2.关于transform属性
利用transform属性可以修改控件的位置(位移),缩放,旋转。
创建一个transform属性
CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx,CGFloat ty);
平移。
假设使用了该属性的UIView的坐标为x、y,使用后的坐标为x+tx,y+ty。
CGAffineTransformCGAffineTransformMakeScale(CGFloat sx,CGFloat sy);
比例缩放。
假设使用了该属性的UIView的宽高为w、l,使用后的宽高为w*sx,l*sy。
CGAffineTransformMakeScale(-1.0, 1.0);//水平翻转
CGAffineTransformMakeScale(1.0,-1.0);//垂直翻转
CGAffineTransformCGAffineTransformMakeRotation(CGFloatang le);
弧度旋转。
le为旋转的弧度。而不是角度。
3.UIImage和UIImageView的父类
UIImage是图片,不是控件,所以它的父类为NSObject;
UIImageView是加载图片的控件,其父类为UIView;
4.frame,center和bounds的区别。
frame : 空间所在父控件中的位置和尺寸。以父控件的左上角为坐标原点。可以定义空间的位置(origin)和大小(size)
bounds : 控件自身的位置和尺寸。定义控件的大小
center : 控件中点的位置。定义控件的位置
5.用模型取代字典的好处
一般情况下使用字典的时候,需要手动敲入key,而且key容易写错,且在编译阶段不会有任何的警告和报错。容易造成读写数据错误。
6.property的使用策略
strong 一般是使用在OC对象上(也可以使用在UI控件上,但会有问题),NSArray, NSDictionary模型……
weak 一般使用在UI控件上,也可以使用在OC对象上
copy 一般使用在NSString,block上
assign 一般使用在基本数据类型上,枚举 结构体
网友评论