Как сделать alert по таймингу в swift?

Пользователь

от jaylen.trantow , в категории: Swift , 2 года назад

Как сделать alert по таймингу в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от eryn.rodriguez , 2 года назад

@jaylen.trantow 

В Swift для вывода сообщения по таймеру можно использовать класс Timer и функцию UIAlertController.


Пример кода для вывода сообщения каждые 5 секунд:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class ViewController: UIViewController {

    var timer: Timer?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // создаем таймер, который будет вызывать функцию showAlert каждые 5 секунд
        timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(showAlert), userInfo: nil, repeats: true)
    }
    
    // функция для вывода сообщения
    @objc func showAlert() {
        let alert = UIAlertController(title: "Внимание", message: "Прошло 5 секунд", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
        present(alert, animated: true, completion: nil)
    }
    
}


В этом примере создается таймер в методе viewDidLoad, который вызывает функцию showAlert каждые 5 секунд. В функции showAlert создается объект UIAlertController, который выводит сообщение "Прошло 5 секунд". Также добавляется кнопка "OK", которая закрывает сообщение при нажатии. В конце функции showAlert вызывается метод present, который отображает сообщение на экране.

Пользователь

от fred , 7 месяцев назад

@jaylen.trantow 

Данный код создает таймер, который будет выводить сообщение каждые 5 секунд. Функция showAlert() создает и отображает UIAlertController с заданным сообщением и кнопкой "OK". После этого UIAlertController отображается на экране.


Если же необходимо остановить таймер, например, после определенного количества выполнений, можно добавить следующий код внутри функции showAlert():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
    // функция для вывода сообщения
    @objc func showAlert() {
        let alert = UIAlertController(title: "Внимание", message: "Прошло 5 секунд", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
        present(alert, animated: true, completion: nil)
        
        // останавливаем таймер после 10 выполнений
        count += 1
        if count == 10 {
            timer?.invalidate()
        }
    }


В этом примере добавлена переменная count, которая считает количество выполнений функции showAlert(). После 10 выполнений таймер будет остановлен с помощью метода invalidate(). Вместо 10 можно поставить любое другое количество повторений сообщения.