「UIProgressView」カテゴリーアーカイブ

UIProgressViewの色を変える/太さを変える


iOS5.0で、UIProgressView(進捗を表すバー)には、progressImage、progressTintColor、trackImage、trackTintColorの5つの設定が追加された。実際につかってみる。また、太さを変える方法はあまり知られていないので併せて紹介する。

progressImage
 バーに画像を貼る。バーの伸縮に合わせて引き伸ばされるので意味のある画像は不向き。単色画像を設定することでベタ塗りのバーにするといった用途が考えられる。この設定を使うとprogressTintColorは無視される。

progressTintColor
 バーの色味を変える。色調が変わるだけで立体感などは残る。

trackImage
 背景に画像を貼る。progressImageと違い伸縮はしない。この設定を使うとtrackTintColorは無視される。

trackTintColor
 背景の色味を変える。色調が変わるだけで立体感などは残る。

太さを変更する
 太さを変える方法はUIProgressViewには用意されていない。しかし、UIProgressViewもUIViewの一種なので、アフィン変換を設定すれば自由に伸縮できる。

progressView2.transform = CGAffineTransformMakeScale(1.0, 2.0);//縦に2倍に引き伸ばす

//太くする
UIProgressView * progressView2 = [[UIProgressView alloc] initWithFrame:CGRectMake(10.0f,60.0f,300.0f,0.0f)];
[progressView2 setProgress:0.8 animated:YES];
progressView2.transform = CGAffineTransformMakeScale(1.0, 2.0);//縦に2倍に引き伸ばす
[rootView addSubview:progressView2];

//色を赤に変更
UIProgressView * progressView3 = [[UIProgressView alloc] initWithFrame:CGRectMake(10.0f,110.0f,300.0f,0.0f)];
[progressView3 setProgress:0.8 animated:YES];
progressView3.trackTintColor = [UIColor colorWithRed:1.0f green:0.9f blue:0.9f alpha:1.0f];
progressView3.progressTintColor = [UIColor colorWithRed:1.0f green:0.2f blue:0.2f alpha:1.0f];
[rootView addSubview:progressView3];

//バーに画像を指定
UIProgressView * progressView4 = [[UIProgressView alloc] initWithFrame:CGRectMake(10.0f,160.0f,300.0f,0.0f)];
[progressView4 setProgress:0.8 animated:YES];
progressView4.progressImage = [UIImage imageNamed:@"arrow.gif"];
progressView4.trackImage = [UIImage imageNamed:@"arrow.gif"];
[rootView addSubview:progressView4];

ダウンロード: ProgressView