为 iOS 应用程序设置主题/皮肤的最佳实践?
Posted
技术标签:
【中文标题】为 iOS 应用程序设置主题/皮肤的最佳实践?【英文标题】:Best practices of theming/skinning an iOS app? 【发布时间】:2012-11-25 02:52:13 【问题描述】:对 ios 应用进行主题化/皮肤设计的一些最佳做法是什么?
例子:
使用自定义图像作为屏幕背景。 修改 UITableView 表的外观。 具有自定义外观的按钮。优秀教程的链接是加分项。
【问题讨论】:
【参考方案1】:您可以创建一个协议,定义返回特定主题颜色、图像等的方法。所有符合该协议的类都必须实现这些方法。
@protocol MyCustomThemes <NSObject>
-(UIFont*)writingAreaFont;
-(UIColor*)dataCellLabelColor;
-(UIImage*)dataCellBackgroundImage;
@end
【讨论】:
这就是 Apple 自己为 Find My Friends 所做的,如 WWDC 2012 视频中的 Session 216 iOS 上的高级外观自定义 你是对的。我没有提到它,因为我不确定我们是否可以谈论这些。 谢谢!如果您只有一个主题(例如“查找我的朋友”),此方法是否会增加价值? 是的,将所有“样式”定义收集到一个文件中可以节省您以后想要更新主题的时间。【参考方案2】:我可以建议:
-
制作主题类
制作返回背景图片的函数
制作函数返回数据单元格。
在主题类中创建任何需要的函数。
init 函数应该有一个参数到 plist 文件,其中包含您的类正常工作所需的资产(图像)。它应该是一个 plist 文件,其中包含预定义键的字典。
希望对你有帮助。
【讨论】:
【参考方案3】:您可以看看NUI,它可以让您非常轻松地修改应用的主题/皮肤,并将该主题也保存给其他应用。
例如,如果您想使用自定义图像作为所有 UIView 的背景,您只需在 NUI 样式表中添加以下内容:
ViewBackgroundImage String MyImage.png
NUI 也支持 UITableViews 和 UIButtons 的样式(如您在其他示例中所述)。
【讨论】:
【参考方案4】:您可能想查看Freestyle。它基于Pixate 构建,并使用结构化的 Sass 为您的应用设置样式。您只需更改变量值即可创建新主题,或通过 CSS 或 Sass 扩展和自定义主题。
【讨论】:
【参考方案5】:老问题,但仍然 - 如果您正在寻找最佳实践,那么 UIAppearance
可能就是它。
但是,如果您正在寻找一种更强大的方式来为您的应用设置样式(并创建主题) - 也请查看 InterfaCSS。 InterfaCSS 使用受 CSS(和 Less/Sass)启发的样式表,支持丰富的选择器语法并允许您使用标准的 UIKit 属性名称。
【讨论】:
我喜欢你实现 InterfaCSS 的方式。看起来非常轻巧且非侵入性。解决一个问题(DRY)。我更喜欢使用它而不是其他单一的样式解决方案(我真的不需要 Pixate 提供的所有编辑器和云共享的东西)。您是否有计划尽快开发 android 版本的 InterfaCSS?【参考方案6】:我知道这可能会迟到,但我偶然发现了一个名为 Pixate 的主题框架。 Pixate 允许您使用 css 为所有组件设置主题。它是原生的,意味着没有 web 视图,什么不是,而且它很容易在现有项目中实现。看看吧。
【讨论】:
更新->Pixate 被谷歌收购并已关闭。以上是关于为 iOS 应用程序设置主题/皮肤的最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章
信创办公--基于WPS的PPT最佳实践系列(PPT导入Word大纲文字)