IPHONE - исчезать и исчезать из UIImageView с разным временем - PullRequest
1 голос
/ 18 февраля 2010

Я хотел бы сделать появление и исчезновение UIImageView, используя другое время, скажем, используя следующие параметры:

  • t = 0 ... Альфа UIImageView = 0
  • t = 0,5 с ... Альфа UIImageView = 0,7
  • t = 0,7 с ... Альфа UIImageView = 0

Возможно ли это сделать с помощью CAAnimation или другого метода? Как это можно сделать?

спасибо за любую помощь!

Ответы [ 3 ]

6 голосов
/ 04 июля 2011
if (imgDefault.alpha == 0.0) {
    CGContextRef context = UIGraphicsGetCurrentContext();
        [UIView beginAnimations:nil context:context];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
        [UIView setAnimationDuration: 3.0];
        [UIView setAnimationDelegate: self];
        imgDefault.alpha = 1.0;
        [UIView commitAnimations];
}
else {
    CGContextRef context = UIGraphicsGetCurrentContext();
        [UIView beginAnimations:nil context:context];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
        [UIView setAnimationDuration: 3.0];
        [UIView setAnimationDelegate: self];
        imgDefault.alpha = 0.0;
        [UIView commitAnimations];
}

надеюсь, что это поможет

3 голосов
/ 18 февраля 2010

Вероятно, вам стоит взглянуть на CAKeyframeAnimation. Это позволит вам установить значения для нескольких временных точек.

2 голосов
/ 18 февраля 2010

UIView имеет setAnimationDidStopSelector: метод, который вы можете использовать. Просто настройте анимацию затухания с помощью блока beginAnimations и установите селектор didStop на другой метод, который содержит только блок анимации затухания. Каждый из этих блоков анимации может иметь различную продолжительность анимации.

Примерно так:

    [UIView beginAnimations:next context:context];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(fadeOut:finished:context:)];
    myView.alpha = 0.7;
    [UIView commitAnimations];

-(void)fadeOut:(NSString*)animationID finished:(BOOL)finished context:(void*)context  {
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationDuration:0.2];
    myView.alpha = 0.0;
    [UIView commitAnimations];
}
...