[iOS] UIAlertView 上に UIProgressView を載せる

2010年12月18日土曜日 | Published in | 3 コメント

このエントリーをはてなブックマークに追加

元ネタはここから。
NSCoriolisBlog » Blog Archive » Add an UIProgressView or UIActivityIndicatorView to your UIAlertView

サンプル


こんな感じ。
"START"ボタンを押すと UIAlertView がポップアップし、プログレスバーが進んでいく。

プログレスバーが 100% になると UIAlertView を閉じる。


実装


UIAlertView のサブビューとして UIProgressView を追加する。追加位置はプログラム内で決め打ちしている。
- (IBAction)start:(id)sender
{
 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Information"
               message: @"Please wait..."
                 delegate: self
              cancelButtonTitle: nil
              otherButtonTitles: nil];
 
 UIProgressView* progressView = [[UIProgressView alloc]
   initWithFrame:CGRectMake(30.0f, 80.0f, 225.0f, 90.0f)];
 [alertView addSubview:progressView];
 [progressView setProgressViewStyle: UIProgressViewStyleBar];
 [progressView release];

 [alertView show];
 [alertView release];
 
 progressValue = 0.0f;
 
 NSDictionary* userInfo =
 [NSDictionary dictionaryWithObjectsAndKeys:
  progressView , kProgressViewKey,
  alertView  , kAlertViewKey,
  nil];

 [NSTimer scheduledTimerWithTimeInterval:0.1f
          target:self
           selector:@selector(updateInformation:)
           userInfo:userInfo
         repeats:YES];
}
サンプルでは NSTimer を使って 0.1秒毎にプログレスバーを 1% 進めている。

なおキャンセルボタンを表示するとこんな感じ。
もともと余白が無いところなので仕方が無い。ボタンを出す場合はメッセージの表示をやめてその位置にプログレスバーを表示するしかない。


ソースコード


ProgressBarOnAlertView at 2010-12-18 from xcatsan/iOS-Sample-Code - GitHub

Responses

  1. 335g says:
    2010年12月23日 23:27

    delegate method の
    - (void)willPresentAlertView:(UIAlertView *)alertView

    でAlertViewのサイズを出現前に変更できたと思いますよ。

    ボタンの位置もsubviewsから設定すればいじれます。

  2. 335g says:
    2010年12月23日 23:27

    delegate method の
    - (void)willPresentAlertView:(UIAlertView *)alertView

    でAlertViewのサイズを出現前に変更できたと思いますよ。

    ボタンの位置もsubviewsから設定すればいじれます。

  3. xcatsan says:
    2010年12月26日 15:00

    教えてもらった方法で AlertViewサイズ変更とボタンの位置変更ができました。情報ありがとうございました!

  4. xcatsan says:
    2010年12月26日 15:00

    教えてもらった方法で AlertViewサイズ変更とボタンの位置変更ができました。情報ありがとうございました!

  5. 335g says:
    2010年12月27日 21:35

    いえいえ。
    こちらこそいつも参考にさせてもらってます。ありがとうございます。
    自分にわかる事であればまたコメントさせていただきます。

  6. 335g says:
    2010年12月27日 21:35

    いえいえ。
    こちらこそいつも参考にさせてもらってます。ありがとうございます。
    自分にわかる事であればまたコメントさせていただきます。

Leave a Response

人気の投稿(過去 30日間)