iOS:在运行时更改设计

时间:2013-12-13 20:09:53

标签: ios design-patterns uiview uiviewcontroller

我目前正在做一个移动商店项目。我的客户订购了新版本应该可以在两个商店之间切换,其中两者之间的唯一区别是第一个是灰色风格,第二个是黑色风格。

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

在应用程序中有一个下拉菜单,可以选择两个商店。我的视图控制器是以编程方式创建的,并在viewcontroller加载时创建自定义视图。视图控制器包含诸如uiimage uilabel,uitableview等uielements。当选择新商店时,应该替换所有颜色和图像,但我的问题是我只保留对稍后需要的那些元素的引用(例如tableview等。)。

所以我的问题是:什么是解决我问题的正确解决方案?是否可以使用特定的设计模式(例如策略模式)来执行此操作,还是必须创建参数化解决方案(或第三个)?

任何帮助都会非常受欢迎。

提前致谢。

祝你好运 塞巴斯蒂安

2 个答案:

答案 0 :(得分:0)

虽然您可以利用宏来区分品牌。例如,如果您有两个品牌,比如MCDonald和KFC,您可以在应用中定义相应的宏,并根据宏将以下样式应用于指定的组件。这种方法的缺点是你最终会实现很多条件块来支持不同的品牌。

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

希望它可以给你一些想法!!!

答案 1 :(得分:0)

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