小笔记

快速创建对象的时候系统会自动释放一次,如:

NSDictionary *dic =[NSDictionary dictionary]; //此时系统自动自动释放一次内存,对象引用计数就 ' -1 ' 

创建(复制)不可变的对象用 copy;

创建(复制)可变的对象用 MutableCopy;

frame :是以父控件为参考系,设置自己在父控件中的坐标,以及设置自己的宽高,frame是以自身左上角做固定;

frame有一个set方法,专一用来在方法中设置在所有子控件的frame使用.

frame中有一个结构体:

1 CGRectGetHeight(self.view.frame); //获取高
2     CGRectGetWidth(self.view.frame);//获取宽
3     CGRectGetMaxX(self.view.frame);//获取最大X值
4     CGRectGetMaxY(self.view.frame);
5     CGRectGetMidX(self.view.frame);//获取中间X值
6     CGRectGetMidY(self.view.frame);
7     CGRectGetMinX(self.view.frame);//获取最小X值
8     CGRectGetMinY(self.view.frame);

bounds :是以自身为参考系,默认坐标为(0,0),但主要作用是用来设置控件自身大小使用的,以其他控件的Bounds(包含:宽 和 高)为参考对象,设置自身的大小,一般直接用,bounds是以自身中心点做固定;

例如:

//  [UIScreen(屏幕)  mainScreen(主屏幕)]

 1 self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; //直接拿设备屏幕的bounds(宽高)来设置自己的bounds;

Transform

 1     //定义一个Butoon
 2       UIButton *button =[[UIButton alloc]init];
 3 //
 4 //    transform:是一个结构体,包含了:
 5 //    CGAffineTransformMake(宽, 正数(顺时针旋转), 负数(逆时针旋转), 高, X, Y)
 6 移动 7     CGAffineTransformTranslate(button.transform, -50, 50);//不带'Make'多了一个参数项,是在目前的‘transform’基础上做移动改变
 8     CGAffineTransformMakeTranslation(-50, 50); //带有“Make”是基于原来的位置与改变后的值两点之间来回移动
 9 //    当需要把一个控件的位置移回到原来的位置时,就可以直接赋值‘CGAffineTransformIdentity’
10     button.transform =CGAffineTransformIdentity;
11 缩放12     CGAffineTransformScale(button.transform, 1.5, 1.5);//不带'Make'多了一个参数项,是在目前的‘transform’基础上做缩放改变
13     CGAffineTransformMakeScale(1.5, 1.5); //带有“Make”是基于原来的大小与改变后的大小值之间来回切换
14 旋转15     CGAffineTransformRotate(button.transform, M_PI_4); //旋转4分之一度

MVC : M:(模型)     V: view(界面)      C:ViewController(控制器)

每个view都有一个属性参数'subviews',它是一个数组属性,包含了该view自身所包含的所有子控件,可以拿他查询子控件的个数(subviews.count),或者遍历所有子控件.

一个有时候用的上的方法:

 1 [self.view.subviews makeObjectsPerformSelector:@selector(click)]; //遍历所有的子控件对象,让他没每一个都执行后面的方法 

1 [self.view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL * _Nonnull stop) {
2         //view就是一个数组,利用数组的遍历方法,遍历view中所有的子控件,获取每个对象'obj',每个对象下标'idx',停止遍历条件'stop'
3     }];

父控件view有一个用户交互开关: 1 self.view.userInteractionEnabled = NO; //关闭之后所有的子控件也将随之关闭用户交互

 1 [self.view bringSubviewToFront:buttom]; //父控件把子控件带到当前页面的最上层进行展示 

UIButton :想要取出当前按钮 button 的某个属性内容,就可以调用'.current',无论想要取出当前按钮的任何属性,比如图片,文字,文字颜色.....都可以使用,

例如: 1 NSString *title =buttom.currentTitle; //取出当前按钮的文本 

KVC : k:(模型)     V: view(界面)      C:ViewController(控制器)

1 // 返回组的索引标题
2 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
3     // 取出模型数组中每一个模型的title属性并返回一个装有所有title值的数组
4     return [self.array valueForKeyPath:@"title"];
5 }
原文地址:https://www.cnblogs.com/xjy-123/p/5147061.html