• Quartz Core框架之CALayer


    1.继承链:NSObject

    2.创建一个layer

        (1)+ (instancetype)layer  :创建和返回一个layer实例对象

        (2)- (instancetype)init  :返回一个初始化的calayer对象

        (3)- (instancetype)initWithLayer:(id)layer  :为一个视图对象初始化一个已经存在的layer对象,view.layer = layer

    3.读取相关的layer 对象

        (1)- (id)presentationLayer  :返回一个复制当前显示layer对象的副本

        (2)- (id)modelLayer  :返回和接收者相关的model layer

    4.读取委托

        (1)@property(weakid delegate  :设置委托,遵守的协议为《CALayerDelegate

    5.提供layer 内容

        (1)@property(strongid contents  :一个提供layer目录的对象

        (2)@property CGRect contentsRect  :返回目录内容的矩形

        (3)@property CGRect contentsCenter  :这个矩形定义了layer内容是怎么样进行缩放的当他们的大小进行改变的时候

        (4)- (void)display  :不可以直接调用这个方法,当layer在合适的时间来更新layer的内容的时候 再调用

        (5)- (void)drawInContext:(CGContextRef)ctx  :使用指定的图像上下文来绘制layer的内容

    6.修改layer的出现

        (1)@property(copyNSString *contentsGravity  :决定了内容对齐与填充方式

        (2)@property float opacity  :设置透明度

        (3)@property(getter=isHiddenBOOL hidden  :是否让layer显示

        (4)@property BOOL masksToBounds  :指定子layer超过边界的时候是否省略超出的那部分

        (5)@property(strongCALayer *mask  :用来掩盖layer内容的layer通道

        (6)@property(getter=isDoubleSidedBOOL doubleSided  :意思是图层有双面,是否都显示,设置NO意思背面看不到

        (7)@property CGFloat borderWidth  :layer边框的宽度

        (8)@property CGColorRef borderColor  :layer边框的颜色

        (9)@property CGColorRef backgroundColor  :设置接收者背景的颜色

        (10)@property float shadowOpacity  ;layer阴影的透明度

        (11)@property CGFloat shadowRadius  :设置阴影的圆角的程度

        (12)@property CGSize shadowOffset  :设置阴影的方向和大小

        (13)@property CGColorRef shadowColor  :设置阴影的颜色

        (14)@property CGPathRef shadowPath  :设置阴影的形状

        (15)@property(copyNSDictionary *style  :An optional dictionary used to store property values that aren't explicitly defined by the layer

        (16)@property float minificationFilterBias  :缩放因子

        (17)@property(copyNSString *minificationFilter  :设置缩小的模式

        (18)@property(copyNSString *magnificationFilter  :设置放大的模式

    7.配置layer的渲染行为

        (1)@property(getter=isOpaqueBOOL opaque  :是否为完全不透明

        (2)@property CAEdgeAntialiasingMask edgeAntialiasingMask  :用于限定层的边缘是如何栅格化,默认值都是抗齿轮的

        (3)- (BOOL)contentsAreFlipped  :获取当前layer图层的y轴方向是否被翻转了

        (4)@property(getter=isGeometryFlippedBOOL geometryFlipped  :表示layer是否被垂直旋转

        (5)@property BOOL drawsAsynchronously  :是否异步绘制,默认是no

        (6)@property BOOL shouldRasterize  :A Boolean that indicates whether the layer is rendered as a bitmap before compositing.

        (7)@property CGFloat rasterizationScale  :栅格化的比例

        (8)- (void)renderInContext:(CGContextRef)ctx  :显在指定的上下文中渲染接收者

    8.修改layer的几何

        (1)@property CGRect frame  :设置layer的矩形

        (2)@property CGRect bounds  :layer边界的矩形

        (3)@property CGPoint position  :layer在父layer中的位置

        (4)@property CGFloat zPosition  :layer在z轴的位置

        (5)@property CGFloat anchorPointZ  :layer的锚点的z分量

        (6)@property CGPoint anchorPoint  :限定层边界的锚点

        (7)@property CGFloat contentsScale  :设置内容的缩放

    9.管理layer的变形

        (1)@property CATransform3D transform  :3d变换,用于层边界相对于锚点的变换

        (2)@property CATransform3D sublayerTransform  :3d变换,用于指定子层边界相对于锚点的变换

        (3)- (CGAffineTransform)affineTransform  :用于访问变换属性,

        (4)- (void)setAffineTransform:(CGAffineTransform)m  :仿射变换的存取方法

    10.管理layer 链

        (1)@property(copyNSArray <CALayer *> *sublayers  :获取layer包含的所有子层

        (2)@property(readonlyCALayer *superlayer  :返回layer的父层

        (3)- (void)addSublayer:(CALayer *)aLayer  :为layer添加子层

        (4)- (void)removeFromSuperlayer  :从父层中移除该layer

        (5)- (void)insertSublayer:(CALayer *)aLayer
                   atIndex:(unsigned int)index
      ;在指定的索引插入子层

        (6)- (void)insertSublayer:(CALayer *)aLayer
                     below:(CALayer *)sublayer
      :在指定子层的下面插入层

        (7)- (void)insertSublayer:(CALayer *)aLayer
                     above:(CALayer *)sublayer
      :在指定的子层上面插入层

        (8)- (void)replaceSublayer:(CALayer *)oldLayer
                       with:(CALayer *)newLayer
      :为指定的子层替换为其他的层

    11.更新layer的显示

        (1)- (void)setNeedsDisplay  :设置有需要的视图重新绘制

        (2)- (void)setNeedsDisplayInRect:(CGRect)theRect  :设置在某一个区域的内容需要重新绘制

        (3)@property BOOL needsDisplayOnBoundsChange  :是否让layer的内容进行更新档边界矩形发生改变的时候

        (4)- (void)displayIfNeeded  :如果有需要进行内容重新绘制

        (5)- (BOOL)needsDisplay  :是否允许重新绘制

        (6)+ (BOOL)needsDisplayForKey:(NSString *)key  :指定是否改变key的值来重新进行绘制

    12.layer动画

        (1)- (void)addAnimation:(CAAnimation *)anim
                  forKey:(NSString *)key
      :通过key值来取得一个动画对象并添加

        (2)- (CAAnimation *)animationForKey:(NSString *)key  :通过key值来获取动画对象

        (3)- (void)removeAllAnimations  :移除所有的动画

        (4)- (void)removeAnimationForKey:(NSString *)key  :移除指定的动画

        (5)- (NSArray<NSString *> *)animationKeys  :获取动画化的key

    13.管理layer调整大小和布局

        (1)@property(strongid layoutManager  :该对象用来对子层进行布局

        (2)- (void)setNeedsLayout  :取消旧的布局,根据需要新型更新布局

        (3)- (void)layoutSublayers  :通知layer来更新布局

        (4)- (void)layoutIfNeeded  :重新计算接收者的布局,如果有需要的话

        (5)- (BOOL)needsLayout  :是否需要布局

        (6)@property CAAutoresizingMask autoresizingMask  :设置自动大小调整遮罩

        (7)- (void)resizeWithOldSuperlayerSize:(CGSize)size  :通知接收者父层的大小发生改变

        (8)- (void)resizeSublayersWithOldSize:(CGSize)size  :设置子层的大小

    14.获取layer的动作

        (1)- (id<CAAction>)actionForKey:(NSString *)key  :通过指定的key来获取action对象

          (2)@property(copyNSDictionary <NSString *,id<CAAction>> *actions  :返回由layer动作组成的字典

        (3)+ (id<CAAction>)defaultActionForKey:(NSString *)key  :返回当前类的默认动作

    15.映射坐标和时间

        (1)- (CGPoint)convertPoint:(CGPoint)aPoint
                  fromLayer:(CALayer *)layer
      :把点从指定的layer坐标系统转换到接收者的坐标系统中

        (2)- (CGPoint)convertPoint:(CGPoint)aPoint
                    toLayer:(CALayer *)layer
      :把点从接收者坐标系统中转换到指定layer坐标系统中

        (3)- (CGRect)convertRect:(CGRect)aRect
                fromLayer:(CALayer *)layer
      :把矩形从指定的layer坐标系统中转换到接收者坐标系统中

        (4)- (CGRect)convertRect:(CGRect)aRect
                  toLayer:(CALayer *)layer
      :把矩形从接收者坐标系统转换到layer坐标系统中

        (5)- (CFTimeInterval)convertTime:(CFTimeInterval)timeInterval
                        fromLayer:(CALayer *)layer
      :Converts the time interval from the specified layer’s time space to the receiver’s time space.

        (6)- (CFTimeInterval)convertTime:(CFTimeInterval)timeInterval
                          toLayer:(CALayer *)layer
      :Converts the time interval from the receiver’s time space to the specified layer’s time space

    16.hit testing

        (1)- (CALayer *)hitTest:(CGPoint)thePoint  :Returns the farthest descendant of the receiver in the layer hierarchy (including itself) that contains the specified point

        (2)- (BOOL)containsPoint:(CGPoint)thePoint  :返回布尔值,判断接收者是否包含有指定的点

    17.滚动

        (1)@property(readonlyCGRect visibleRect  :读取可见的区域

        (2)- (void)scrollPoint:(CGPoint)thePoint  :想要滚动到的点

        (3)- (void)scrollRectToVisible:(CGRect)theRect  :滚动到指定的区域

    18.标志layer

        (1) @property(copyNSString *name  :接收者的名字

    19.键值对编码扩展

        (1)- (BOOL)shouldArchiveValueForKey:(NSString *)key  :返回一个布尔值指定是否保存key指定的值

        (2)+ (id)defaultValueForKey:(NSString *)key  :指定和指定key相关的默认值

    20.常量

        (1)CAAutoresizingMask的常量

          kCALayerNotSizable = 0,  :接收者不可以调整大小

          kCALayerMinXMargin = 1U << 0,  :父视图和接受者之间的左边界是可调整的

          kCALayerWidthSizable = 1U << 1,  :接收者的宽度是可调整的

          kCALayerMaxXMargin = 1U << 2,  :父视图和接收者之间的右边界是可调整的

          kCALayerMinYMargin = 1U << 3,  :父视图和接收者之间的底部是可调整的

          kCALayerHeightSizable = 1U << 4,  :接收者的高度是可调整的

          kCALayerMaxYMargin = 1U << 5  :父视图和接收者之间的顶部是可调整的

        (2)CAEdgeAntialiasingMask的常量

          kCALayerLeftEdge = 1U << 0,  :左边的边缘设置为抗齿轮属性

          kCALayerRightEdge = 1U << 1,  :右边的边缘设置为抗齿轮属性

          kCALayerBottomEdge = 1U << 2,  :底部的边缘设置为抗齿轮属性

          kCALayerTopEdge = 1U << 3,  :顶部的边缘设置为抗齿轮属性

        (3)Contents Gravity Values的常量

          NSString * const kCAGravityCenter;  :重力中心在中心

          NSString * const kCAGravityTop;  :重力中心在顶部

          NSString * const kCAGravityBottom;  :重力中心在底部

          NSString * const kCAGravityLeft;  :重力中心在左边

          NSString * const kCAGravityRight;  :重力中心在右边

          NSString * const kCAGravityTopLeft;  :重力中心在左上方

          NSString * const kCAGravityTopRight;  :重力重力在右上方

          NSString * const kCAGravityBottomLeft;  :重力中心在左下角

          NSString * const kCAGravityBottomRight;  :重力中心在右下角

          NSString * const kCAGravityResize;  :

          NSString * const kCAGravityResizeAspect;

          NSString * const kCAGravityResizeAspectFill;

        

  • 相关阅读:
    docker as engitor及云构建devops选型
    elmlang:一种编码和可视化调试支持内置的语言系统
    engitor:基于jupyter,一个一体化的语言,IDE及通用分布式架构环境
    【Heritrix基础教程之3】Heritrix的基本架构
    Eclipse 快捷键大全
    【Heritrix基础教程之2】Heritrix基本内容介绍
    【Heritrix基础教程之1】在Eclipse中配置Heritrix
    Berkeley DB基础教程
    【搜索引擎Jediael开发笔记】v0.1完整代码
    【搜索引擎Jediael开发笔记】V0.1完整代码
  • 原文地址:https://www.cnblogs.com/lelun/p/5725337.html
Copyright © 2020-2023  润新知