Подтвердить что ты не робот

Показывать и исчезать UIImageView через 2 секунды

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

  • Пользователь нажимает кнопку, которая вызывает метод popupImage
  • Изображение отображается на экране в определенном месте, оно не должно исчезать в
  • Изображение исчезает само по себе после того, как он будет отображаться на экране в течение 2 секунд.

Есть ли способ сделать это? Спасибо заранее.

4b9b3361

Ответ 1

Используйте UIView специальные методы для этого.

Итак, представьте, что у вас уже есть UIImageView готовый, уже созданный и добавленный к основному виду, но просто скрытый. Ваш метод просто должен сделать его видимым и начать анимацию через 2 секунды, чтобы угаснуть его, оживив его свойство "alpha" от 1.0 до 0.0 (во время анимации 0,5 с):

-(IBAction)popupImage
{
    imageView.hidden = NO;
    imageView.alpha = 1.0f;
    // Then fades it away after 2 seconds (the cross-fade animation will take 0.5s)
    [UIView animateWithDuration:0.5 delay:2.0 options:0 animations:^{
         // Animate the alpha value of your imageView from 1.0 to 0.0 here
         imageView.alpha = 0.0f;
     } completion:^(BOOL finished) {
         // Once the animation is completed and the alpha has gone to 0.0, hide the view for good
         imageView.hidden = YES;
     }];
}

Просто как это!

Ответ 2

В Swift и XCode 6

self.overlay.hidden = false
UIView.animateWithDuration(2, delay:5, options:UIViewAnimationOptions.TransitionFlipFromTop, animations: {
    self.overlay.alpha = 0
    }, completion: { finished in
    self.overlay.hidden = true
})

где наложение - это выход для моего изображения.

Ответ 3

Свифт 3 версии @AliSoftware ответ

imageView.isHidden = false
imageView.alpha = 1.0

UIView.animate(withDuration: 0.5, delay: 2.0, options: [], animations: {

            self.imageView.alpha = 0.0

        }) { (finished: Bool) in

            self.imageView.isHidden = true
        }

Ответ 4

Да, есть. Взгляните на UIView блочную анимацию здесь. И Google для примера.

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations

Вы также можете запустить timer

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats