Akihiro's Programmer Blog

Technology Notes for Personal

UIProgressViewでHPゲージみたいなことさせたかった


ゲージが最大まで行くと色が違うゲージが増え始める、格ゲーとかのあれ。

でもUIProgressViewだと、したいことができなかったので自作した。


できなかったこと

  • UIProgressViewは高さ固定で指定できない
  • 0 ~ 1 までの範囲で、1ゲージ分しか表示できない


やりたかったこと

  • 高さは指定可能
  • 0 ~ 1 の範囲だけでなく、それを越えた分だけ別の色のゲージが伸びる


これ

(まだREADME書けてない、、、)


install

cocoapodsならPodfileに以下を記述して

pod 'ColorGaugeView', :git => 'https://github.com/akihiro0228/ColorGaugeView.git'

pod install でOKです。


使い方

UIViewを置いて、

f:id:akihiro_0228:20150715102915p:plain


CustomClassにColorGaugeViewを指定

f:id:akihiro_0228:20150715102928p:plain


あとは形を整えれば設置は完了

f:id:akihiro_0228:20150715102947p:plain


あとはコード上で、

import UIKit
import ColorGaugeView

class ViewController: UIViewController {
    @IBOutlet weak var colorGauge: ColorGaugeView!
    @IBOutlet weak var slider: UISlider!

    override func viewDidLoad() {
        super.viewDidLoad()

        // UIColor Array
        let barColors = [
            UIColor.blueColor(),
            UIColor.brownColor(),
            UIColor.yellowColor(),
            UIColor.cyanColor(),
            UIColor.magentaColor()
        ]

        // set gauge colors
        self.colorGauge.barColors = barColors

        // set gauge type
        self.colorGauge.type = ColorGaugeType.LeftToRight

        self.slider.addTarget(self, action: "sliderChanged:", forControlEvents: UIControlEvents.ValueChanged)
    }

    func sliderChanged(sender: UISlider) {
        self.colorGauge.gauge = self.slider.value
    }
}

という感じで表示したいバーの色と、ゲージが増える方向を指定。

gaugeの値を変更してやればゲージが増えたり減ったりします。

こんな感じ

f:id:akihiro_0228:20150715102959g:plain