У меня есть несколько анимированных / интерактивных UIImageViews на моем UIView, которые будут анимироваться / взаимодействовать на основе пользовательских прикосновений. Я пытаюсь добавить функцию, которая бы «шевелила» эти интерактивные UIImageViews с возможностью анимации при прикосновении к значку, что помогло бы пользователю определить, какие объекты являются интерактивными на экране. Я пытаюсь использовать следующий код для достижения движения "покачивания" из этого блога:
-(void)doWiggle:(UIView *)touchView {
// grabbing the layer of the tocuhed view.
CALayer *touchedLayer = [touchView layer];
// here is an example wiggle
CABasicAnimation *wiggle = [CABasicAnimation animationWithKeyPath:@"transform"];
wiggle.duration = 0.1;
wiggle.repeatCount = 1e100f;
wiggle.autoreverses = YES;
wiggle.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate(touchedLayer.transform,0.1, 0.0 ,1.0 ,1.0)];
// doing the wiggle
[touchedLayer addAnimation:wiggle forKey:@"wiggle"];
// setting a timer to remove the layer
[NSTimer scheduledTimerWithTimeInterval: 2.0 target:self selector:@selector(endWiggle:) userInfo:touchedLayer repeats:NO];
}
-(void)endWiggle:(NSTimer*)wiggleTimer {
// stopping the wiggle now
[((CALayer*)wiggleTimer.userInfo) removeAllAnimations];
}
Я называю это так в своей программе: [self doWiggle:imageAnimation];
, где imageAnimation - это UIImageView. Я вижу, что во время покачивания половина изображения исчезает. Я где-то читал, что мне нужно правильно установить z-индекс, чтобы это работало. Что мне нужно установить для z-index? и у меня есть 3 - 4 UIImageViews на страницу, где мне нужно вызвать doWiggle: рутина, мне нужно исправить z-индексы всех этих UIImageViews?