Using the Settings.app on the iPhone isn't that hard. In fact Xcode does the most of the work for you. Just add the Settings.bundle to your project and there you have it for nearly no cost.
At the moment I'm developing an application for the iPhone which requires the user to fill out several "forms", mostly key-value pairs, some sliders and several modal views with "dropdown" menus. So similar the task is similar to what the Settings.app does.
Doing the forms by myself is a heavy task in my opinion, so I'm wonding if there's a framework for this kind of tasks. Unfortunately it looks like Apple doesn't provide it's own solution. Perhaps somebody knows of a framework or an article on the web which describes best practices.
In case you don't understand to which pattern I'm referring, I made a screenshot: http://img.skitch.com/20090625-s8bf6ahybwe3cesd1id38h3nt.jpg
iPhone - Hide Address Bar on Page Load
Website Theme for IPhone - What are The Basic Ingredients?
PHP file storing on webhosting service?
It's used in a couple of apps and it's actively maintained (by myself and a bunch of others)..
How to access other objects from within NSOperation? Threading issues lead to crash
UITableViewCell's imageView fit to 40x40
Using NSMethodSignature on iPhone (with Obj-C 2.0 properties)
C# iPhone push server?
how do i store audio files in sqlite3 database and play them in iphone?
But by now I stumbled over this repository on github: mySettings.
If you look at the new 3.0 UITableViewCellStyles, there's one style tailor-made to doing settings kind of cells - it would make it pretty easy to build out a simple settings screen..
This has worked for me to reproduce the interface you are talking about - the example here is a TextField - but the same code has worked very well with all controls..
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];
. I don't yet know of anything like that but, I could really use one and I have considered writing one..