主题/皮肤化iOS应用程序的最佳实践是什么?

3

如何更好地为iOS应用程序制定主题或皮肤?

例如:

  • 使用自定义图像作为屏幕背景。
  • 修改UITableView表格的外观。
  • 带有自定义外观的按钮。

好的教程链接也是一个加分项。

6个回答

6
你可以创建一个协议来定义返回特定主题的颜色、图片等方法。所有符合此协议的类都必须实现这些方法。
@protocol MyCustomThemes <NSObject>
-(UIFont*)writingAreaFont;
-(UIColor*)dataCellLabelColor;
-(UIImage*)dataCellBackgroundImage;
@end

这就是苹果在“寻找我的朋友”应用中所采取的方法,正如在iOS高级外观定制的第216节视频中所见(2012 WWDC)。 - Dmitry Shevchenko
你说得对。我没有提到它,因为我不确定我们是否被允许谈论那些事情。 - MJN
谢谢!如果您只有一个主题(例如“查找我的朋友”),那么这种方法是否会增加价值? - Tom Söderlund
是的,将所有“样式”定义收集在一个文件中,可以节省时间,当您想要更新主题时。 - andytuba

2
您可以看一下NUI,它可以让您非常容易地修改应用程序的主题/皮肤,并将该主题保存供其他应用程序使用。
例如,如果您想为所有UIView使用自定义图像作为背景,只需在NUI样式表中添加以下内容即可:
ViewBackgroundImage    String    MyImage.png

NUI也支持UITableView和UIButtons的样式设置(就像您在其他示例中提到的一样)。

2
我可以提出以下建议:
  1. 制作主题类
  2. 制作返回背景图像的函数
  3. 制作返回数据单元格的函数
  4. 在主题类中制作任何所需的函数

init 函数应该有一个参数,即 plist 文件,其中包含为使您的类正常工作所需的资源(图片)。 它应该是包含预定义键的字典的 plist 文件。

希望这有所帮助。


2

你可能想要查看Freestyle。它是基于Pixate构建的,可以使用结构化Sass为你的应用程序添加样式。你只需更改变量值即可创建新主题,或通过CSS或Sass进行扩展和自定义。


2

虽然这个问题有些老,但如果你正在寻找最佳实践,那么UIAppearance可能就是你需要的。

不过,如果你希望以更强大的方式样式化你的应用程序(并创建主题),那么也可以看一下InterfaCSS。InterfaCSS使用类似于CSS(和Less/Sass)的样式表,支持丰富的选择器语法,并允许您使用标准的UIKit属性名称。


我喜欢你实现InterfaCSS的方式。看起来非常轻量级和不侵入性。解决了一个问题(DRY)。与其他庞大的样式解决方案相比,我更愿意使用它(我真的不需要Pixate提供的所有编辑器和云共享功能)。您是否有计划尽快开发InterfaCSS的Android版本? - Kevin Craft

1
我知道可能有些晚了,但我发现了一个名为Pixate的主题框架。 Pixate允许您使用css来设置所有组件的主题。它是本地化的,意味着没有Web视图等等,并且在现有项目中相当容易实现。看一下吧。

更新->Pixate已被Google收购并关闭。 - sean808080

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接