如何动态更改CALayer的内容

时间:2010-11-23 08:06:36

标签: iphone iphone-sdk-3.0 ios4 calayer

我正在创建一些CALayers并使用

使用CATransform3D对其进行转换
imageLayer.frame = CGRectMake(-22.0f, 188.0f, 180.0f, 50.0f);
imageLayer.transform = CATransform3DMakeRotation(120.0f * M_PI / 180.0f,
                                                 0.0f, 15.0f, 0.0f);
imageLayer.contents = (id)[[UIImage imageNamed:@"photo.png"] CGImage];
[caLayer addSublayer:imageLayer];

这是一个带输出的示例图像...... alt text

我将未转换的图像保留为图像视图,以便我可以处理滑动。我有一组10张图片。因此,当用户在主图像上滑动时,相应的图像应该在图层和图像视图中加载。我可以加载图像视图,但在动态加载CALayers时遇到一些问题。

我试过了

NSArray *array=[caLayer sublayers];
    caLayer = [array objectAtIndex:entryImageIndex];
    //caLayer.contents=(id)[[UIImage imageNamed:@"flashImage1.jpg"] CGImage];
    caLayer.contents=(id)[[UIImage imageWithCGImage:[imageArray objectAtIndex:entryImageIndex-1]]];

但这给了我错误。任何人都可以告诉我如何用图像动态填充CALayers ......任何示例代码都会有很大的帮助......

1 个答案:

答案 0 :(得分:2)

而不是

    caLayer.contents=(id)[[UIImage imageWithCGImage:
[imageArray objectAtIndex:entryImageIndex-1]
]
];

    caLayer.contents=(id)[UIImage imageWithCGImage:
[imageArray objectAtIndex:entryImageIndex-1]
].CGImage;

caLayer.contents=(id)[imageArray objectAtIndex:entryImageIndex-1];