CABasicAnimation отключает любую сенсорную активность в анимированном слое - PullRequest
1 голос
/ 20 ноября 2010
- (void)fadeOutStuff
{
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"];
    anim.delegate = self;
    anim.duration = 0.25f;
    anim.removedOnCompletion = NO;
    anim.fillMode = kCAFillModeForwards;
    anim.fromValue = [NSNumber numberWithFloat:1.0f];
    anim.fromValue = [NSNumber numberWithFloat:0.0f];
    [self.searchList.layer addAnimation:anim forKey:@"animationOpacity"];
}

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

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

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

[self.searchList.layer addAnimation:anim forKey:@"animationOpacity"];
[self.searchList.layer setValue:[NSNumber numberWithFloat:endingOpacityValue forKey:@"opacity"]];
0 голосов
/ 20 ноября 2010

Если я правильно помню, скрытые объекты не будут получать прикосновения. Я не знаю, применимо ли это, если это просто непрозрачность, установленная на ноль, но попробуйте посмотреть, что произойдет, если вы сделаете это только до 0,01f вместо всего до 0.

Кстати, я не знаю, опечатка это или нет, но вы устанавливаете anim.fromValue дважды, а вы не устанавливаете anim.toValue.

...