SVProgressHUDとSwiftGifOriginでつくるカスタムローディング

loading

こんにちは!株式会社Pentagon代表の山本です。iOSアプリ開発を7年以上やっています。

今回、デザインチームからgifをローディングとして表示したいと言われたので、最小の労力で実現する方法をご紹介します。

好きなgifをローディングとして表示できる

Podfileを設定

今回、SVProgressHUDというローディングライブラリとSwiftGifOriginというgifを表示するライブラリを組み合わせます。

 pod 'SVProgressHUD'
pod 'SwiftGifOrigin'

SVProgressHUDをラップして使う

import SVProgressHUD
import SwiftGifOrigin
struct Progress {
static let gif = UIImage.gif(name: "loading")
static func configure() {
// allow user interactions while HUD is displayed
SVProgressHUD.setDefaultMaskType(.none)
SVProgressHUD.setDefaultAnimationType(.native)
SVProgressHUD.setMinimumSize(CGSize(width: 120, height: 120))
SVProgressHUD.setImageViewSize(CGSize(width: 120, height: 120))
SVProgressHUD.setDefaultStyle(.custom)
SVProgressHUD.setFont(.boldSystemFont(ofSize: 14.0))
SVProgressHUD.setMinimumDismissTimeInterval(2.0)
SVProgressHUD.setMaximumDismissTimeInterval(10.0)
}
static func show() {
if let gif = Progress.gif {
SVProgressHUD.show(gif, status: nil)
} else {
SVProgressHUD.show()
}
}
static func showError(with message: String? = nil) {
SVProgressHUD.showError(withStatus: message)
}
static func showSuccess(with message: String? = nil) {
SVProgressHUD.showSuccess(withStatus: message)
}
static func dismiss(_ completion: (() -> Void)? = nil) {
SVProgressHUD.dismiss {
completion?()
}
}
static func showInfo(with message: String? = nil) {
SVProgressHUD.showInfo(withStatus: message)
}
}

あとはshowで表示するだけ。

Progress.show()
\アプリ・Webサイト制作のご相談はこちら/ お問い合わせ