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
335g says:
2010年12月23日 23:27
delegate method の
- (void)willPresentAlertView:(UIAlertView *)alertView
でAlertViewのサイズを出現前に変更できたと思いますよ。
ボタンの位置もsubviewsから設定すればいじれます。
335g says:
2010年12月23日 23:27
delegate method の
- (void)willPresentAlertView:(UIAlertView *)alertView
でAlertViewのサイズを出現前に変更できたと思いますよ。
ボタンの位置もsubviewsから設定すればいじれます。
xcatsan says:
2010年12月26日 15:00
教えてもらった方法で AlertViewサイズ変更とボタンの位置変更ができました。情報ありがとうございました!
xcatsan says:
2010年12月26日 15:00
教えてもらった方法で AlertViewサイズ変更とボタンの位置変更ができました。情報ありがとうございました!
335g says:
2010年12月27日 21:35
いえいえ。
こちらこそいつも参考にさせてもらってます。ありがとうございます。
自分にわかる事であればまたコメントさせていただきます。
335g says:
2010年12月27日 21:35
いえいえ。
こちらこそいつも参考にさせてもらってます。ありがとうございます。
自分にわかる事であればまたコメントさせていただきます。