动态故事板或Xibs /笔尖

时间:2012-07-28 11:36:57

标签: ios storyboard customization xib nib

我们公司正在为iPad开发一个相当大的应用程序。最终,我们希望能够为每个客户(租户)甚至每个用户(该客户)自定义UI。我们从HTML5开始,但正在转向原生。

我已经完成了从服务器下载XML(甚至生成XIB / NIB文件)并将其动态添加到您的应用程序的一些阅读。

现在使用iOS 5(甚至更进一步的6)故事板正在发挥重要作用。

我的问题:
- 使用(多个?)故事板或XIB会更好吗? - 如果我想提供动态用户界面,我有哪些选择?

我不是在寻找一个神奇的药丸,也不是关于HTML5与本机的讨论,只是关于如何提供动态界面的一些信息以及哪些技术可以帮助这样做。

3 个答案:

答案 0 :(得分:8)

我对你的两个问题的回答是:

  1. 故事板非常适合场景管理;它创造了一种视觉联系 你的各种场景/观点。我更喜欢在尽可能多的UI中使用storyboard。 但是,我在一些应用程序中有一些元素可以获取现有的或可重用的 或其他动态XIB。我只是通过加载将这些与我的故事板结合在一起 代码中的XIB在我想要它们的位置。所以,我对你的最终答案 第一个问题是“both”,其中尽可能使用故事板,并使用XIB 动态场景/观点。

  2. 您的动态用户界面选项至少包括以下两个选项(如上所述,我更喜欢第二个选项):

    1. 使用XIB文件创建所有代码,并在没有故事板的情况下执行所有UI转换 在代码中
    2. 尽可能多地创建UI,在关系方面保持相对静态 在带有故事板的viewControllers之间,然后加载UI的动态部分 使用initWithNibName:bundle:
  3. 最后,如果情况允许,您可以使用多个故事板,这甚至可以应用于动态UI,无论是来自故事板中其他位置创建并可单独维护的可重用组件,还是故事板XML(如果您查看故事板源) ,无论是从生成的东西还是在任何地方获得的,它都只是引擎盖下的XML。如果您的应用程序将具有多个复杂的互连视图控制器场景(例如,UITabBarController中的每个选项卡可能都有自己的故事板,每个故事板的场景rootController连接/加载时,您甚至可以决定在设计阶段使用多个故事板管理您的UI。选择一个标签。)

答案 1 :(得分:1)

StoryBoard一路走来!我用来绝对不喜欢故事板,但后来我习惯了他们,现在我喜欢他们。故事板是要走的路。

答案 2 :(得分:0)

Layout似乎是在iOS上开发动态GUI的强大框架。

免责声明:我不是该框架的作者;作者是尼克·洛克伍德(Nick Lockwood),他似乎对SO有所了解。我通过谷歌搜索“ ios dynamic gui”找到了这个问题和尼克·洛克伍德的布局框架。

我还没有尝试过,但是看起来确实很有希望。

该项目甚至托管在GitHub here上,并且具有MIT许可证。