Site icon AppTractor

AHDownloadButton: кнопка загрузки, как в App Store

AHDownloadButton — кнопка загрузки, как в Apple App Store (начиная с iOS 11). С анимацией загрузки, переходами между состояниями (начало, ожидание, загрузка и скачанный файл), массой настроек.

Пример использования:

  let downloadButton = AHDownloadButton()
  downloadButton.frame = CGRect(origin: origin, size: size)
  view.addSubview(downloadButton)

Делегат:

extension DownloadViewController: AHDownloadButtonDelegate {

    func downloadButton(_ downloadButton: AHDownloadButton, tappedWithState state: AHDownloadButton.State)
        switch state {
        case .startDownload:

            // set the download progress to 0
            downloadButton.progress = 0

            // change state to pending and wait for download to start
            downloadButton.state = .pending

            // initiate download and update state to .downloading
            startDownloadingFile()

        case .pending:

            // button tapped while in pending state
            break

        case .downloading:

            // button tapped while in downloading state - stop downloading
            downloadButton.progress = 0
            downloadButton.state = .startDownload

        case .downloaded:

            // file is downloaded and can be opened
            openDownloadedFile()

        }
    }
}

GitHub: https://github.com/amerhukic/AHDownloadButton
Платформа: iOS
⭐️: 383

 

Exit mobile version