zoukankan      html  css  js  c++  java
  • iosanimationWithKeyPath

     

    animationWithKeyPath的值:

     

      transform.scale = 比例轉換

     

        transform.scale.x = 闊的比例轉換

     

        transform.scale.y = 高的比例轉換

     

        transform.rotation.z = 平面圖的旋轉

     

        transform.translation.x

     

    transform.translation.y

     

    transform.translation.z

        opacity = 透明度

     

        margin

     

        zPosition

     

        backgroundColor    背景颜色

     

        cornerRadius    圆角

     

        borderWidth

     

        bounds

     

        contents

     

        contentsRect

     

        cornerRadius

     

        frame

     

        hidden

     

        mask

     

        masksToBounds

     

        opacity

     

        position

     

        shadowColor

     

        shadowOffset

     

        shadowOpacity

     

        shadowRadius

    Core Animation Programming Guide

    Key-Value Coding Extensions

    Core Animation extends the NSKeyValueCoding protocol as it pertains to the CAAnimation and CALayer classes. This extension adds default values for some keys, expands wrapping conventions, and adds key path support for CGPointCGRectCGSize, andCATransform3D types.

    Key-Value Coding Compliant Container Classes

    The CAAnimation and CALayer classes are key-value coding compliant container classes, which means that you can set values for arbitrary keys. Even if the key someKey is not a declared property of the CALayer class, you can still set a value for it as follows:

    [theLayer setValue:[NSNumber numberWithInteger:50] forKey:@"someKey"];

    You can also retrieve the value for arbitrary keys like you would retrieve the value for other key paths. For example, to retrieve the value of the someKey path set previously, you would use the following code:

    someKeyValue=[theLayer valueForKey:@"someKey"];

    OS X Note: The CAAnimation and CALayer classes, which automatically archive any additional keys that you set up for instances of those classes, support the NSCoding protocol.

    Default Value Support

    Core Animation adds a convention to key value coding whereby a class can provide a default value for a key that has no set value. TheCAAnimation and CALayer classes support this convention using the defaultValueForKey: class method.

    To provide a default value for a key, create a subclass of the desired class and override its defaultValueForKey: method. Your implementation of this method should examine the key parameter and return the appropriate default value. Listing C-1 shows a sample implementation of the defaultValueForKey: method for a layer object that provides a default value for the masksToBounds property.

    Listing C-1  Example implementation of defaultValueForKey:

     
    + (id)defaultValueForKey:(NSString *)key
    {
        if ([key isEqualToString:@"masksToBounds"])
             return [NSNumber numberWithBool:YES];
     
        return [super defaultValueForKey:key];
    }

    Wrapping Conventions

    When the data for a key consists of a scalar value or C data structure, you must wrap that type in an object before assigning it to the layer. Similarly, when accessing that type, you must retrieve an object and then unwrap the appropriate values using the extensions to the appropriate class. Table C-1 lists the C types commonly used and the Objective-C class you use to wrap them.

    Table C-1  Wrapper classes for C types

    C type

    Wrapping class

    CGPoint

    NSValue

    CGSize

    NSValue

    CGRect

    NSValue

    CATransform3D

    NSValue

    CGAffineTransform

    NSAffineTransform (OS X only)

    Key Path Support for Structures

    The CAAnimation and CALayer classes lets you access the fields of selected data structures using key paths. This feature is a convenient way to specify the field of a data structure that you want to animate. You can also use these conventions in conjunction with thesetValue:forKeyPath: and valueForKeyPath: methods to set and get those fields.

    CATransform3D Key Paths

    You can use the enhanced key path support to retrieve specific transformation values for a property that contains a CATransform3D data type. To specify the full key path for a layer’s transforms, you would use the string value transform or sublayerTransform followed by one of the field key paths in Table C-2. For example, to specify a rotation factor around the layer’s z axis, you would specify the key pathtransform.rotation.z.

    Table C-2  Transform field value key paths

    Field Key Path

    Description

    rotation.x

    Set to an NSNumber object whose value is the rotation, in radians, in the x axis.

    rotation.y

    Set to an NSNumber object whose value is the rotation, in radians, in the y axis.

    rotation.z

    Set to an NSNumber object whose value is the rotation, in radians, in the z axis.

    rotation

    Set to an NSNumber object whose value is the rotation, in radians, in the z axis. This field is identical to setting therotation.z field.

    scale.x

    Set to an NSNumber object whose value is the scale factor for the x axis.

    scale.y

    Set to an NSNumber object whose value is the scale factor for the y axis.

    scale.z

    Set to an NSNumber object whose value is the scale factor for the z axis.

    scale

    Set to an NSNumber object whose value is the average of all three scale factors.

    translation.x

    Set to an NSNumber object whose value is the translation factor along the x axis.

    translation.y

    Set to an NSNumber object whose value is the translation factor along the y axis.

    translation.z

    Set to an NSNumber object whose value is the translation factor along the z axis.

    translation

    Set to an NSValue object containing an NSSize or CGSize data type. That data type indicates the amount to translate in the x and y axis.

    The following example shows how you can modify a layer using the setValue:forKeyPath: method. The example sets the translation factor for the x axis to 10 points, causing the layer to shift by that amount along the indicated axis.

    [myLayer setValue:[NSNumber numberWithFloat:10.0] forKeyPath:@"transform.translation.x"];

     

     

     

     https://developer.apple.com/library/prerelease/ios/releasenotes/General/iOS80APIDiffs/frameworks/QuartzCore.html

    https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/Key-ValueCodingExtensions/Key-ValueCodingExtensions.html#//apple_ref/doc/uid/TP40004514-CH12-SW2

  • 相关阅读:
    vue 监听变量或对象
    同行span标签设置display:inline-block;overflow:hidden垂直对齐问题
    vue style 的scoped 使用
    判断两个对象是否相等
    js call 和 apply方法记录
    接口联调遇到的坑 总结
    onclick或者其他事件在部分移动端无效的问题
    js 迭代方法
    原生js实现类的添加和删除,以及对数据的add和update、view ,ajax请求 ,页面离开的操作,获取url中参数等方法
    input 的radio checkbox 和 select 相关操作
  • 原文地址:https://www.cnblogs.com/wcLT/p/5194673.html
Copyright © 2011-2022 走看看