2012-03-31 91 views
0

我正在寻找一个很好的设计模式来皮肤的应用程序。假设...你有几个不同的类需要不同的字体,大小不同。皮肤应用的最佳设计模式是什么?

我原来的做法是建立一个UIFont类,并放置了一堆的方法...说...

+ (UIFont*)myTabBarFont; 

我只是想知道如果任何人有一个更好的解决方案。

谢谢! (顺便说一句,我需要保持与iOS 4的兼容性,我不能依赖100%的新外观API)。


编辑:

我会回答这个问题我自己。我实际上正在寻找的是在应用程序范围内对皮肤组件进行优化的方法。

其中一个选项是使用Inversion of Control,而不是在任何地方抓取特定的字体和颜色,你可以简单地创建一个AppearanceManager,并传递你想要皮肤的上下文。例如:

[[AppearanceManager sharedInstance] skinComponent:something container:somethingElse]; 

这样,您可以将所有样式保留在同一个类中。当然,AppearanceManager类将依靠反射来获取要应用的属性。

很高兴听到有人实施了更好的方法。

谢谢!

回答

1

我想你应该将所有设置存储到单独的文件中,并根据皮肤名称或皮肤ID手动调用它们。如果您使用plist文件,则可以使用一个命令将其加载到数组中,并且此数组的元素将分别表示每个皮肤的值分别为

+0

谢谢!这听起来像一个有趣的选择。我正在考虑复制Apple的外观模式。说...像IoC那样做一个'AppearanceManager',所以...你可以做一些事情:[[AppearanceManager sharedInstance] skinComponent:something container:somethingElse]。 (我真的找到一个优雅的解决方案!)。 再次感谢! – 2012-04-01 18:58:39

相关问题