2009-07-23 27 views
8

我想一個視圖添加到我的應用程序,允許用戶更改幾個(許多)設置。它應該看起來像內置的「設置應用程序」(see here),但它必須在我的應用程序本身。目前我只是有一個tableview,我手動添加不同的單元格對象(對應於開關,滑塊等)。有沒有更聰明的做法?我有一種感覺,我正在重新發明輪子。如何在應用程序內重新創建一個「設置應用程序」 - 如tableview?

+0

如果有人有興趣看到結果(轉到'銀河系',然後'選項'):http://itunes.apple.com/us/app/exoplanet/id327702034?mt=8 – hanno 2011-02-14 01:52:27

回答

4

不,那是順便說一下,返回單個細胞在tableView:cellForRowAtIndexPath:方法。請記住,UITableViewCell具有諸如附件標記(詳細discolure按鈕,披露指示器或複選標記)和左側圖像的有用屬性。

4

下面是一些代碼我用來建立一個首選項頁面:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 3; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    switch (section) { 
     case (0): 
      return 3; 
      break; 
     case (1): 
      return 2; 
      break; 
     case (2): 
      return 1; 
      break; 
    } 
    return 0; 
} 

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
    switch (section) { 
     case (0): 
      return @"Numbers"; 
      break; 
     case (1): 
      return @"Randomize"; 
      break; 
     case (2): 
      return @"About"; 
      break; 
    } 
    return nil; 
} 

switch語句設置了3個部分:數字,隨機化和版本。你可以與任何控制你需要

0

如果你真的奮發拼搏的部分填寫,你可以簡單地使用相同的格式,蘋果公司用來描述設置通常會進入設置包 - 而是你自己解析它們,並根據設置類型動態構建表格。

這是一個很大的工作,但話又說回來了一半的工作已經爲你做了蘋果對你如何定義設置的很好,不過出來的plist模式。

這也爲您提供了擴展的設置格式,包括一些額外的功能設置應用程序不會有優勢......

11

這是互聯網標準的一個老問題,但我發現一個驚人的方式要做到這一點只需要很少的努力。我拉着我的頭髮試圖在另一個筆尖上創建第二張桌子視圖,然後我發現這些人:InAppSettingsKit

基本上他們已經完成了所有的視圖和後端的工作,只需將文件添加到您的項目並實現在班上有幾個委託方法你調用從設置頁面(與你的用戶界面,打開設置面板的按鈕等一起),它需要的東西NSUserDefaults的照顧。用戶界面和設置值和鍵都從用於實際應用的設置相同Settings.bundle,這意味着你的設置可以由用戶在兩地被改變,在應用程序,並在設置應用程序產生的。我發現這比用於自定義表格視圖的委託方法更容易,現在我實際上不必在Settings.app和某些應用內選擇,因爲它同時具有這兩種功能。

剩下的就是當你需要它們時,用[[NSUserDefaults standardUserDefaults] objectForKey:@「key」]將你需要的值提供給你的應用程序。

+1

不錯。不幸的是,差不多一年已經太晚了,但我會記住,以防萬一我再次需要它。 – hanno 2010-05-09 19:42:46

相關問題