【问题标题】:Is there a library or framework for setting preferences from within an iPhone application?是否有用于从 iPhone 应用程序中设置首选项的库或框架?
【发布时间】:2010-11-05 19:16:25
【问题描述】:

在 iPhone 上使用 Settings.app 并不难。事实上,Xcode 为您完成了大部分工作。只需将 Settings.bundle 添加到您的项目中,您几乎可以免费获得它。

目前我正在为 iPhone 开发一个应用程序,它需要用户填写几个“表单”,主要是键值对、一些滑块和几个带有“下拉”菜单的模式视图。如此相似,该任务类似于 Settings.app 所做的。

在我看来,自己做表格是一项繁重的任务,所以我想知道是否有适合此类任务的框架。不幸的是,苹果似乎没有提供自己的解决方案。也许有人知道网络上描述最佳实践的框架或文章。

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

【问题讨论】:

    标签: ios iphone forms settings key-value


    【解决方案1】:

    查看http://www.inappsettingskit.com。它在几个应用程序中使用,并且得到积极维护(由我和其他人)。

    【讨论】:

      【解决方案2】:

      经过大量研究,我未能对我最初的问题找到一个好的答案。但是现在我在 github 上偶然发现了这个存储库:mySettings

      【讨论】:

      • 在 mySettings Github 页面上:“mySettings 不再处于积极开发中”。最后一次提交是从 2010 年 1 月开始的。
      【解决方案3】:

      最好将设置放在应用程序中,至少在 Apple 可以轻松地将用户发送到设置然后返回应用程序之前。如果您查看新的 3.0 UITableViewCellStyles,就会发现一种为设置类型的单元格量身定制的样式 - 它可以很容易地构建一个简单的设置屏幕。

      【讨论】:

        【解决方案4】:

        好吧,如果您正在进行设置,那么我建议您将它们放在正确的位置并使用 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 - 但相同的代码对所有控件都非常有效。

        【讨论】:

        • 你不是在重用你的 UITableViewCells 吗?如果您这样做,您如何区分哪些文本字段调用 lastNameChanged: ?
        • 是的,我当然是! - textField 上的标签告诉我哪个字段是哪个。我还确保在回收单元格时删除与我的标签列表匹配的所有控件。
        【解决方案5】:

        我很确定他要求的是一个框架,它可以从 settings.bundle 文件重新创建设置界面,以便在设置应用程序和您的应用程序中都可以进行设置。

        我还不知道这样的东西,但是,我真的可以使用一个,我已经考虑写一个。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多