Нужно встряхнуть коллекцию viewcell на didselectitematindexpath в ios

введите здесь описание изображения

CAKeyframeAnimation * anim = [ CAKeyframeAnimation animationWithKeyPath:@"transform"] ;

anim.values = @[ [ NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-10.0f, 0.0f, 0.0f) ], [ NSValue valueWithCATransform3D:CATransform3DMakeTranslation(10.0f, 0.0f, 0.0f) ] ] ;
anim.autoreverses = YES;
anim.repeatCount = 2.0f;
anim.duration = 0.1f;

[cell.layer addAnimation:anim forKey:nil] ;

Я пишу приведенный выше код, чтобы встряхнуть ячейку представления коллекции при выборе. Когда я делаю это в первый раз после просмотра экрана, кадры ячейки представления коллекции не совпадают. Хотя он отлично работает, когда я снова захожу в представление. Пожалуйста, помогите мне, почему это создает проблему в первый раз после добавления анимации, если я удаляю анимацию, тогда также не было несоответствия в первый раз, но мне нужна анимация при касании.

В то время как, когда я снова захожу в этот вид и делаю раздел, кадры не совпадают. Возникают проблемы только с выбором в первый раз при первом посещении в представлении.


person Som    schedule 18.03.2016    source источник


Ответы (2)


У меня есть решение этой проблемы, почему рамка ячейки представления коллекции не совпадает. Это было вызвано из-за ToastView. Я показывал сообщение о превышении изображения тостом. Теперь я использую представление предупреждений, и оно работает нормально....

person Som    schedule 21.03.2016

Вы можете использовать приведенный ниже код для просмотра встряхивания.

#pragma mark
#pragma mark - ANIMATION SHAKE

- (void)shake:(UIView *)shakeView {

    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.translation.x"];
    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
    animation.duration = 0.6;
    animation.values = @[ @(-10), @(10), @(-10), @(10), @(-5), @(5), @(-2.5), @(5), @(0) ];
    [shakeView.layer addAnimation:animation forKey:@"shake"];

}
person Jay Mehta    schedule 18.03.2016
comment
Код, предоставленный вами, также сделал то же самое. Код, написанный мной, работает в соответствии с потребностями, но у него есть одна проблема. Я работаю над collectionView, и мне нужно встряхнуть ячейку коллекции при выборе. Проблема заключается в том, что в первый раз все кадры не совпадают, когда я выбираю любую ячейку, в то время как он работает нормально, когда я снова захожу, чтобы просмотреть и выбрать любую ячейку. - person Som; 18.03.2016
comment
@som можешь выложить скрин этой штуки - person Jay Mehta; 18.03.2016