【问题标题】:iOS: Change design at runtimeiOS:在运行时更改设计
【发布时间】:2013-12-13 20:09:52
【问题描述】:

我目前正在做一个移动商店项目。我的客户要求新版本应该能够在两个商店之间切换,两者之间的唯一区别是第一个是灰色风格的,第二个是黑色风格的。

因为这两个商店非常相似,所以我不想复制源代码(这将是简单的解决方案),但不是一个非常灵活的解决方案。我熟悉不同的设计模式,但找不到适合我特定问题的设计模式。

在应用程序中有一个下拉菜单,可以在其中选择两个商店。我的视图控制器是以编程方式创建的,并在视图控制器加载时创建了一个自定义视图。 The view controllers contain uielements such as uiimage uilabel, uitableview etc. When a new shop is selected all the colors and images should be replaced, but my problem is that I only keep the reference to those elements that I need later on (such as the表视图等)。

所以我的问题是:解决我的问题的正确解决方案是什么?是否可以使用特定的设计模式(例如策略模式)来做到这一点,还是我必须制定一个参数化的解决方案(或第三种)?

任何帮助将不胜感激。

提前致谢。

最好的问候 塞巴斯蒂安

【问题讨论】:

    标签: ios design-patterns uiview uiviewcontroller


    【解决方案1】:

    虽然您可以使用宏来区分品牌。例如,如果你有两个品牌,比如麦当劳和肯德基,你可以在你的应用程序中定义各自的宏,并根据宏将以下样式应用于指定的组件。这种方法的缺点是您最终会实施大量条件块来支持不同的品牌。

    或者您可以为品牌创建不同的目标并将所需的图像复制到相应的目标。但请记住在两个目标中命名相似的图像,应用程序将从选定的目标中提取所需的图像。使用这种方法,您将共享相同的代码库但不同的资源。

    希望能给你一些启发!!!

    【讨论】:

      【解决方案2】:

      我会使用UIAppearance 来自定义颜色,并为每个目标设置不同的图像(每个目标都是商店版本)。

      【讨论】:

        猜你喜欢
        • 2016-05-12
        • 2012-03-17
        • 2015-12-05
        • 2011-09-25
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多