2009-06-25 84 views
5

在iPhone上使用Settings.app並不難。事實上,Xcode爲您完成了大部分工作。只需將Settings.bundle添加到您的項目中,並且幾乎沒有任何成本。是否有一個庫或框架來設置iPhone應用程序的偏好?

目前我正在開發一款iPhone應用程序,需要用戶填寫幾個「表單」,主要是鍵值對,一些滑塊和幾個帶「下拉」菜單的模態視圖。如此相似的任務與Settings.app所做的相似。

在我看來,自己完成這些表單是一項繁重的工作,所以我想知道是否有這種類型的任務的框架。不幸的是,它看起來像Apple不提供它自己的解決方案。也許有人知道網站上的框架或文章描述了最佳實踐。

如果你不明白我指的哪一種模式,我做了一個截圖:http://img.skitch.com/20090625-s8bf6ahybwe3cesd1id38h3nt.jpg

回答

1

那麼,如果你正在做的設置,那麼我建議把他們在正確的位置,並使用設置。束。

我猜你是在做設置,雖然這對你的應用程序非常重要,如果他們不得不從應用程序跳轉到設置並返回,這將是一個可怕的用戶體驗。

當你說這個任務很重要 - 你能否詳細說明 - 就像我所做的一樣,它並不重。

使用一個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 - 但是相同的代碼在所有控件上都運行得很好。

+0

是不是重複使用你的UITableViewCells?如果你確實如何區分哪個文本域調用了lastNameChanged:? – 2009-06-26 13:53:19

+0

當然,我是! - textField上的標籤告訴我哪個字段是哪個字段。此外,我確信任何與我的標籤列表匹配的控件都會在回收單元時被刪除。 – Grouchal 2009-06-26 15:43:37

0

我很確定他要求的是一個框架,它從settings.bundle文件重新創建設置界面,以便在設置應用程序和應用程序中都可以進行設置。

我還不知道這樣的事情,但我真的可以使用一個,我已經考慮寫一個。

2

最好在應用程序中添加設置,至少在Apple將用戶輕鬆發送到設置然後再返回到應用程序之前。如果你看看新的3.0 UITableViewCellStyles,那麼有一種風格是爲了設置單元格而設計的 - 它可以使構建一個簡單的設置屏幕變得非常容易。

3

經過大量的研究,我沒有設法得到一個很好的答案,我最初的問題。但現在我偶然發現了github上的這個存儲庫:mySettings

相關問題