Показывать и исчезать UIImageView через 2 секунды
Я работаю над системой уведомлений в своей iPhone-игре и хочу, чтобы изображение появилось на экране и автоматически исчезало через 2 секунды.
- Пользователь нажимает кнопку, которая вызывает метод popupImage
- Изображение отображается на экране в определенном месте, оно не должно исчезать в
- Изображение исчезает само по себе после того, как он будет отображаться на экране в течение 2 секунд.
Есть ли способ сделать это? Спасибо заранее.
Ответы
Ответ 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