QuickDialogはUITableViewを使わないで簡単にダイアログを作成・表示するiOS用のライブラリで、Apacheライセンスで配布されています。
本記事ではQuickDialogの導入と利用の手順を簡単に説明します。なお、自動参照カウント(ARC)を利用しているので利用にはXCode 4.2 betaが必要です。
導入
- GitHub for Macをインストールします。
- GitHubのQuickDialogへ行き、Clone in Macをクリックします。
- GitHub for Macが起動して必要な設定を埋めてくれているので[OK]をクリック。
- プロジェクトを作成します。
- プロジェクトに先ほどCloneしたQuickDialog内のフォルダquickdialogを追加します。
- プロジェクトの[Build Phase]→[Link Binary with Libraries]にMapKit.Frameworkを追加します。
- sample/quickdialogexample-Prefix.pchを参考に、Foobar-Prefix.pchに次のようなimportを追加します。
#import "QuickDialogController.h" #import "QuickDialogController+Loading.h" #import "QuickDialogStyleProvider.h" #import "QLabelElement.h" #import "QBadgeElement.h" #import "QBooleanElement.h" #import "QButtonElement.h" #import "QDateTimeInlineElement.h" #import "QFloatElement.h" #import "QMapElement.h" #import "QRadioElement.h" #import "QRadioItemElement.h" #import "QTextElement.h" #import "QWebElement.h" #import "QDecimalElement.h" #import "QSortingSection.h" #import "QDateTimeElement.h"
利用法
次のように、QRootElementにいろいろ要素を追加していき、最後にこれを用いてQuickDialogControllerを作成します。
QRootElement* root = [[QRootElement alloc] init]; root.grouped = YES; root.title = @"ダイアログサンプル"; QSection* detailsSection = [[QSection alloc] initWithTitle:@"いろいろサンプル"]; [root addSection:detailsSection]; QFloatElement* q1 = [[QFloatElement alloc] initWithTitle:@"スライダー" value:1]; [detailsSection addElement:q1]; QDecimalElement* q2 = [[QDecimalElement alloc] initWithTitle:@"10進数" value:0.25]; [detailsSection addElement:q2]; QBadgeElement* q3 = [[QBadgeElement alloc] initWithTitle:@"バッジ付き" Value:@"Foo"]; q3.badge = @"1"; [detailsSection addElement:q3]; QBooleanElement* q4 = [[QBooleanElement alloc] initWithTitle:@"Boolean" BoolValue:TRUE]; [detailsSection addElement:q4]; QDateTimeInlineElement* q5 = [[QDateTimeInlineElement alloc] initWithTitle:@"時間" date:[NSDate date]]; [detailsSection addElement:q5]; QuickDialogController* qcont = [[QuickDialogController alloc] initWithRoot:root]; UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:qcont]; [self presentModalViewController:navigation animated:YES];
これで次のようなビューが作成されます。
Blocksを用いてビューが消える時のコールバックを設定することもできます。
q1.key = @"slider-value"; q2.key = @"decimal-value"; q3.key = @"badge-value"; q4.key = @"bool-value"; q5.key = @"time-value"; qcont.willDisappearCallback = ^() { NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [root fetchValueIntoObject:dict]; NSString *msg = @"Values:"; for (NSString *aKey in dict){ msg = [msg stringByAppendingFormat:@"\n- %@: %@", aKey, [dict valueForKey:aKey]]; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; };
これで、ビューが消えるときに次のようなアラートが表示されます。
テーブルのセルには時間やマップを扱えるものがあります。QuickDialog内にサンプルがありますので試してみるとよいでしょう。
まとめ
QuickDialogの導入と利用について簡単に説明しました。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。