Iphone ipad应用程序蒙皮结构/方法?

Iphone ipad应用程序蒙皮结构/方法?,iphone,ipad,ios,uikit,Iphone,Ipad,Ios,Uikit,我想为我的应用程序用户提供两种不同的皮肤,一种默认的黑色皮肤,然后说白色皮肤。可能允许他们在站点范围内为标题或其他内容设置字体和/或字体颜色 这样做的最佳方法是什么?显然,我不希望这影响我的应用程序的速度。您基本上有3个选项 UIWebView中的HTML5+CSS 根据您的需要,最灵活的方法是通过UIWebView提供部分用户界面,作为HTML5和CSS,并让用户(或主题制作者)创建不同的基于CSS的样式。大多数应用程序都是这样做的;例如IM+或口语 通过子类化修改本机控件 苹果可能会拒绝修改

我想为我的应用程序用户提供两种不同的皮肤,一种默认的黑色皮肤,然后说白色皮肤。可能允许他们在站点范围内为标题或其他内容设置字体和/或字体颜色


这样做的最佳方法是什么?显然,我不希望这影响我的应用程序的速度。

您基本上有3个选项

  • UIWebView中的HTML5+CSS 根据您的需要,最灵活的方法是通过
    UIWebView
    提供部分用户界面,作为HTML5和CSS,并让用户(或主题制作者)创建不同的基于CSS的样式。大多数应用程序都是这样做的;例如IM+或口语

  • 通过子类化修改本机控件
    苹果可能会拒绝修改本机控件和视图的应用程序。因此,如果你想将你的应用提交到应用商店,这不是一个安全的选项

  • 创建自己的UIView子类并实现它们的行为
    选项三是使用UIView的子类绘制您自己的控件,但这可能需要做更多的工作。在iOS上的许多游戏中都可以找到这一点


  • 对于存储和访问组成用户界面的颜色和其他参数等属性,我建议使用一些简单的方法


    在我的一些应用程序中,我使用JSON文件(或者XML,但这需要更多的解析工作)。TouchJSON(github.com/schwa/TouchJSON)在简单地将文件转换为NSDictionary方面做得非常好,很容易访问。例如,你可以在这样一个文件中存储颜色、字体名称和大小,并在发布时读取其中一个。

    这是一个本地应用程序,因此1和2已经过时,我想在显示界面时更多地使用一个存储颜色和字体的地方。为此,我建议使用一些简单的方法。在我的一些应用程序中,我使用JSON文件(或者XML,但这需要更多的解析工作)。TouchJSON()在将文件简单地转换为NSDictionary方面做得非常好,NSDictionary易于访问。例如,你可以将颜色、字体名称和大小存储在这样一个文件中,并在启动时读取其中一个。badcat将此更改为一个答案,以便我可以接受它-这是我选择的方向。我不明白为什么#2可能会导致你的应用被拒绝。子类化肯定不是一种高风险行为吗?