2009-07-23 25 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

相关问题