美文网首页
零碎知识点记录表

零碎知识点记录表

作者: Ljson | 来源:发表于2015-06-11 12:43 被阅读246次
    1. 苹果帮助文档更新目录:
      https://developer.apple.com/library/downloads/docset-index.dvtdownloadableindex (在里面可以找到对应的文档链接)

    2. 修改模板文件可以使新建类文件的时候,自动打上自己想要的注释:
      模板文件目录:/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Touch Class.xctemplate

    3. 关于 NSTimer定时器注意点:

      NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self  selector:@selector(run) userInfo:nil repeats:YES];                                                                              
      //当定时器要做的是更新UI时,一定要把定时器加到当前的运行循环,不然定时器不会执行
      //更新UI必须在主线程,但是当他们同时执行的时候,定时器就会停住
      [[NSRunLoop currentRunLoop]addTimer:timer forMode:NSRunLoopCommonModes];
      
    4. UIView的边界:

    clipsToBounds属性决定了子视图的显示范围。(默认值为NO。)

    • YES时,剪裁超出父视图范围的子视图部分;
    • 当取值为NO时,不剪裁子视图,超出部分继续显示。

    layer.masksToBounds属性决定了子视图图层的显示范围。(iOS6默认值为YES,iOS7默认值为NO。)

    • YES时,剪裁超出父视图图层范围的子视图图层部分;
    • 当取值为NO时,不剪裁子视图图层,超出部分继续显示。
    1. 绘图:

    常用方法

       /** 可以单独的影响某一块,而不影响其他的 */
       CGContextSaveGState();//保存当前上下文
       CGContextRestoreGState();//恢复保存的上下文
       /** 结合上面的函数使用,效果不一般 */
       CGContextRotateCTM(,);//旋转矩阵操作
       CGContextScaleCTM(, , );//缩放矩阵操作
       CGContextTranslateCTM(, , );//平移矩阵操作
       CGContextClip();//裁剪一个区域作为以后的绘图区域
       UIGraphicsBeginImageContextWithOptions(尺寸, 周围是否不透明, 缩放(0.0:表示默认尺寸));//保存图片
       UIGraphicsBeginPDFContextToData(, , )//保存PDF
       UIGraphicsBeginPDFContextToFile(, , )//保存PDF
      >截屏
    
       UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0.0);
       [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
       UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    
    1. result = object ? : [self createObject]; <==>result = object ? object : [self createObject];

    2. 根据形变求旋转角度 atan2(view.transform.b,view.transform.a)

    3. 裁剪图片(裁剪的时候是像素点)

      CGImageCreateWithImageInRect(CGImageRef image, CGRect rect)
      transform.m34 表示人眼离屏幕的距离(不是正的修改距离,而是为了营造3D效果,而设置的一个参数,例如 - 1 / 100 : 表示设置人眼离屏幕的距离为 100)

    4. 关于内存释放:

    下一次循环的时候清除无用的内存(没有被强引用的对象)

    1. 在main之前,就会加载类(+load)

    2. appearance

    //获取ContainerClass及其子类的对象的象征
    +(instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass,nil;

    1. block格式 敲inline会提示block格式

    2. 在Xcode6导入pch文件

    pch prefix (路径定位到工程文件夹,注意不用加“/”)

    1. oc强制去除警告: #pragma clang diagnostic ignored "错误类型”

    2. isMemberOfClass:是否是某个类的实例(必须是这个类的实例,子类) isKindOfClass

    3. [button sizeToFit] :按钮会根据内容适配尺寸

    4. block 循环引用

    block 会强引用block(代码块)里面的强指针,所以可能会导致会导致循环引用

    包括用下划线访问成员变量也会造成循环引用(下划线,其实也是拿到对象的指针,再访问到他的成员变量)

    要用 __weak 创建一个弱指针,在block中使用,从而避免循环引用

    1. 在tableview的cell上添加textfield,系统会自己做好键盘处理

    2. + (void)initialize方法会在类或者子类第一次使用的时候调用,表示类或者它的子类的类对象初始化完毕

    相关文章

      网友评论

          本文标题:零碎知识点记录表

          本文链接:https://www.haomeiwen.com/subject/ndejqttx.html