具有视图的MVC模式适应不同的屏幕分辨率

时间:2013-03-06 17:36:37

标签: ios oop model-view-controller design-patterns architecture

我开始考虑如何解决为所有具有不同屏幕(分辨率,比率,视网膜等)的iOS设备开发应用程序的问题。我正在使用Adobe Air(AS3),但这无关紧要,因为我处于概念阶段,我担心要使用的模式。

如果我只是为iPad开发,问题就像加倍测量和尺寸以适应视网膜和非视网膜设备一样简单。但我需要考虑iPhone,iPod,以及最终的Android,因为它有无数的屏幕。

到目前为止,我看到了那些可能的选择。如果这些选项已有一些术语,我很抱歉,但我会用自己的话说出来。

  • 具有某种液体布局的智能视图,以及适应视图分配给它们的空间的智能组件,以及适用于字体大小和图像大小的屏幕dpi。例如:视图说“这里有一个带有这个宽度/高度的按钮”。按钮已经知道文本必须是什么字体大小,具体取决于屏幕dpi。

  • 使用不同UI视图类的参数进行分解。所以我有一个适用于iPad的视图类,另一个适用于iPhone等等,并且会有一个类根据设备分解视图的实例化。这些类中的每一个都可以手工定制,彼此完全不同,但底层模型和(希望)控制器在每个设备上都是相同的。

  • 中途方法:一个用于平板电脑的UI View类,另一个用于手机的UI视图类,以及具有某种液体容量的微观元素的位置和大小(按钮,文本,图像等)

  • 外部配置文件,根据设备为View提供一些参数。那将是某种自定义CSS。

我确信我不是第一个在我的道路上找到这块石头的人。 那么这个问题通常是如何解决的呢? 那些场景是否有一些稳定的模式? 我应该阅读一些参考书(书,文章)吗?

我无法找到对此的深入回答。如果已经被询问/回答,请不要进行投票。在评论中发布链接,我将删除此问题。

1 个答案:

答案 0 :(得分:0)

您正在描述响应式网页设计。有多种方法和方法可以使您的站点响应(即能够在多种屏幕大小上运行,而无需修改或重新配置代码库或依赖用户代理来检测浏览器信息)。

从这里开始:http://msdn.microsoft.com/en-us/magazine/hh653584.aspx

还要考虑各种开源CSS框架,以简化您的生活。例如,BootstrapHTML5 Boilerplate。这两者都完全独立于您的开发平台,并且应该与MVC一起使用。