Как сделать так, чтобы анимация мигания / флеш-анимации в UIImageView была бесконечной? - PullRequest
2 голосов
/ 10 апреля 2019

Я пытаюсь добиться эффекта мерцания / мигания с некоторой продолжительностью для UIImageView в моем приложении для iOS. Я хочу, чтобы UIImageView мигал / мигал с альфой, а не с разными изображениями.

У меня есть еще один фрагмент кода из приложения для Android, который как бы описывает то, чего я пытаюсь достичь в XCode Swift. Я размещаю это здесь ниже:

Это то, чего я достиг в XCode Swift:

        ellipses.alpha=0.8
        ellipses.animationDuration=1
        ellipses.animationRepeatCount=0
        ellipses.startAnimating()

И, конечно, это не работает! Я не совсем уверен, как этого добиться, и был бы очень рад получить руководство.

Этот код ниже для Android, а не для Swift / Xcode (но он описывает, что моя цель довольно ясна)

        Animation animation = new AlphaAnimation(1, 0); //to change visibility from visible to invisible
        animation.setDuration(1000); //1 second duration for each animation cycle
        animation.setInterpolator(new LinearInterpolator());
        animation.setRepeatCount(Animation.INFINITE); //repeating indefinitely
        animation.setRepeatMode(Animation.REVERSE); //animation will start from end point once ended.
        imageButton.startAnimation(animation); //to start animation

Ответы [ 2 ]

5 голосов
/ 10 апреля 2019

Вы можете повторно анимировать прозрачность изображения.Что-то вроде:

UIView.animate(withDuration: 2.0,
                      delay: 0,
                    options: [.repeat, .autoreverse],
                 animations: { imageView.opacity = 0 }
              )
3 голосов
/ 10 апреля 2019

Используйте следующий код, чтобы получить анимацию изображения, как мигание.

Изображение мигает (при использовании вида изображения скрыть / показать): -

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true)
    }

    @objc func alarmAlertActivate(){
        myImage.isHidden = !myImage.isHidden
    }

enter image description here

Изображение Blink (Использование альфа-представления просмотра изображения): -

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        Timer.scheduledTimer(timeInterval: 0.7, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true)
    }

@objc func alarmAlertActivate(){
        UIView.animate(withDuration: 0.7) {
            self.alarmImage.alpha = self.alarmImage.alpha == 1.0 ? 0.0 : 1.0
        }
    }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...