LoginSignup
0
0

More than 5 years have passed since last update.

【Swift】MRProgress の利用方法について2

Last updated at Posted at 2015-04-10

概要

iOSライブラリのMRProgress利用方法についてです。

【Swift】MRProgress の利用方法について1

利用方法

UIProgressView(文字とプログレスバーの基本表示)を表示する例です。

image

filename.swift
    //
    var mrprogress:MRProgressOverlayView!

    //UIProgressViewの表示例
    @IBAction func btn_StartClick(sender: AnyObject) {
        mrprogress = MRProgressOverlayView()
        mrprogress.titleLabelText = "Loading!"
        mrprogress.mode = MRProgressOverlayViewMode.DeterminateHorizontalBar

        var progress = UIProgressView()
        progress.progressViewStyle = UIProgressViewStyle.Default
        progress.progress = 0.5
        progress.trackTintColor = UIColor.grayColor()
        progress.progressTintColor = UIColor.blueColor()
        mrprogress.modeView = progress
        view.addSubview(mrprogress)
        mrprogress.show(true)
    }

    //progressバーを進める例
    //StoryboardにTapGestureRecognizerを追加してタップアクション時に
    //progressバーを10%進めてます。100%になったらHide
    @IBAction func tap_Click(sender: AnyObject) {
        if(mrprogress == nil){return}
        let obj = mrprogress.modeView as UIProgressView
        if(obj.progress >= 1.0){
            mrprogress.hide(true)
        }else{
            mrprogress.setProgress(obj.progress + 0.1,animated: true)
        }
    }

プログレスバー作成

MRProgressOverlayViewのmodeViewにUIProgressViewのインスタンスをセットしてます。
このUIProgressView以外にも設定できるmodeViewがあり、
それぞれで設定できる値が違うのではないか?と思っています。

プログレスバーを進める

とりあえずタップでプログレスバーを進めてテストしてます。
MRProgressOverViewオブジェクトのprogressではなくて
modeViewのprogressに値が入っているため、
いちいちキャストしなくては現在の値が取得できなかったです。

所感

そもそもMRProgressOverlayViewにprogressがあるのに
modeViewにもprogressを持つのはなんか気持ちが悪い。
おそらくmodeViewをセットしなくても利用方法があるためだとは思いますが・・・・

あとmodeViewがUIViewクラスにアップキャストしてるため、
ダウンキャストしないとprogressが見えないんですよね・・・
プログレスバーの性質上設定してある値にアクセスする必要性があまりないのはわかりますが、
今回みたいにインクリメントしたい場合には不便ですね。

基底クラスに設定できるプロパティをまとめればどのmodeViewを使う場合もダウンキャストする必要がないのになぁ・・・

MRProgressのラッパークラス作成

目的は
・設定できるプロパティを明確にする
・簡単にプロパティを設定できる
・呼び出しの簡略化

できれば
・イベントが拾えるならクロージャを追加するだけで処理をしてくれるようにしたい

というわけで今からちょっと書いてみようかと思います。

次⇒【Swift】MRProgress の利用方法について まとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0