Как выгореть между 2 изображениями на iPhone с помощью Базовой Анимации

Наиболее неопровержимый довод для использования MSBuild (по крайней мере, в.NET 3.5 и вне) - механизм сборки может создать одновременно.

Это означает, что огромная скорость в Ваших сборках в Вас имеет несколько ядер/процессоров.

До 3,5, MSBuild не сделал параллельных сборок.

44
задан willc2 12 October 2009 в 09:53
поделиться

2 ответа

Вы почти у цели.

CABasicAnimation *crossFade = [CABasicAnimation animationWithKeyPath:@"contents"];
crossFade.duration = 5.0;
crossFade.fromValue = image1.CGImage;
crossFade.toValue = image2.CGImage;
[self.imageView.layer addAnimation:crossFade forKey:@"animateContents"];

Обратите внимание, что анимация не зависит от фактических значений / содержимого UIImageView. Поэтому вам нужно

self.imageView.image = image2;

... установить окончательный результат для вашего изображения.

78
ответ дан 26 November 2019 в 21:38
поделиться

Я предлагаю просто использовать два UIImageView друг над другом. Наверху есть image1, а внизу image2:

- (void) crossfade {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:.5];
    imageView1.alpha = !imageView1.alpha;
    [UIView commitAnimations];
}

Оно будет плавно переходить между двумя изображениями, когда вы его вызовете. Если вы хотите просто сделать одно затухание и удалить первое изображение после того, как закончите:

- (void) crossfade {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:.5];
    [UIView setAnimationDelegate:imageView1];
    [UIView setAnimationDidStopSelector:@selector(removeFromSuperview)];
    imageView1.alpha = 0
    [UIView commitAnimations];
}

Изменить:

Если вы ищете причину, по которой ваш код не работает, это потому, что вы просто установка свойства для нового изображения, а затем добавление бесполезной анимации. CABasicAnimation имеет fromValue и toValue , которые необходимо установить, затем добавить эту анимацию к слою, и она должна выполнить анимацию. Не устанавливайте содержимое вручную.

0
ответ дан 26 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: