zoukankan      html  css  js  c++  java
  • 小笔记

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

    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 }
  • 相关阅读:
    LinkedList源码解析
    四种List实现类的对比总结
    HashMap源码解析
    Flutter——Switch组件(开关组件)
    Flutter——Radio组件、RadioListTile组件(单选按钮组件)
    Flutter——Checkbox组件、CheckboxListTile(多选框组件)
    Flutter——TextField组件(文本框组件)
    Flutter——FloatingActionButton组件(浮动按钮组件)
    Flutter中的按钮组件介绍
    Flutter——Drawer、DrawerHeader、UserAccountsDrawerHeader组件(侧边栏组件)
  • 原文地址:https://www.cnblogs.com/xjy-123/p/5147061.html
Copyright © 2011-2022 走看看