Как динамически изменять содержимое CALayer - PullRequest
0 голосов
/ 23 ноября 2010

Я создаю несколько слоев CALay и преобразую их, используя 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 Ответ

2 голосов
/ 06 декабря 2010

вместо

    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];
...