iPhoneアプリケーション内からプリファレンスを設定するためのライブラリまたはフレームワークはありますか?
質問
iPhoneでSettings.appを使用するのはそれほど難しくありません。実際、Xcodeがほとんどの作業を行います。 Settings.bundleをプロジェクトに追加するだけで、ほぼ無料で使用できます。
現時点では、ユーザーがいくつかの<!> quot; forms <!> quot;を入力する必要があるiPhone用のアプリケーションを開発しています。 > quot; dropdown <!> quot;メニュー。そのため、タスクはSettings.appが行うことと似ています。
フォームを自分で行うのは私の意見では重い仕事なので、この種のタスクのためのフレームワークがあるのではないかと思っています。残念ながら、Appleは独自のソリューションを提供していないようです。おそらく誰かがフレームワークまたはベストプラクティスを説明するWeb上の記事を知っています。
どのパターンを参照しているかわからない場合は、スクリーンショットを作成しました: http://img.skitch.com/20090625-s8bf6ahybwe3cesd1id38h3nt.jpg
解決
http://www.inappsettingskit.com をご覧ください。いくつかのアプリで使用されており、(自分と他の多くの人によって)積極的にメンテナンスされています。
他のヒント
多くの研究を重ねた結果、最初の質問に対する良い答えが得られませんでした。しかし、今ではgithubでこのリポジトリを見つけました: mySettings
少なくともAppleがユーザーを簡単に[設定]に送信してからアプリに戻すまで、アプリに設定を配置することをお勧めします。新しい3.0 UITableViewCellStylesを見ると、設定セルの種類に合わせたスタイルが1つあります。簡単な設定画面を簡単に作成できます。
設定を行っている場合は、正しい場所に配置してSettings.bundleを使用することをお勧めします。
設定を行っているのはアプリにとって非常に重要ですが、アプリから設定にジャンプしてやり直さなければならない場合、ユーザーエクスペリエンスは恐ろしいものになります。
タスクの実行が重いと言うとき-私がそれをやったので、詳しく説明してもらえますか?
UITableViewControllerを使用
使用するセルごとに、次のようなコードを入力します。
cell.textLabel.text = @"Last name:";
UIFont *labelFont = [UIFont systemFontOfSize:[UIFont labelFontSize]];
CGSize textSize = [cell.textLabel.text sizeWithFont:labelFont];
baseRect.origin.x = textSize.width+15;
baseRect.origin.y +=7;
baseRect.size.width = baseRect.size.width - textSize.width - 15;
baseRect.size.height = 23;
UITextField *textField = [[UITextField alloc] initWithFrame:baseRect];
textField.keyboardType = UIKeyboardTypeAlphabet;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.delegate = self;
textField.placeholder = @"last name";
[textField addTarget:self action:@selector(lastNameChanged:) forControlEvents:UIControlEventAllEditingEvents];
textField.tag = 182;
[cell.contentView addSubview:textField];
[textField release];
これは私があなたが話しているインターフェイスを再現するのに役立ちました-ここの例はTextFieldです-しかし、同じコードはすべてのコントロールで非常にうまく機能しました。
彼が求めているのは、settings.bundleファイルから設定インターフェイスを再作成するフレームワークであり、設定アプリとアプリ内の両方に設定できるようにすることです。
そのようなことはまだ知りませんが、実際に使用することができるので、書くことを検討しました。