1

我了解到,在 iOS 5 中,标有 UI_APPEARANCE_SELECTOR 的属性可以使用外观设置样式。例如 [[UINavigationBar 外观] setTintColor:....]。但是,我似乎无法为所有元素设置样式。例如,UIButton 没有标记为 UI_APPEARANCE_SELECTOR 的属性,因此我无法使用上述技术对其进行样式设置。

我的问题是:当我不能使用外观时,如何在全局范围内最好地设计元素(应用程序中的所有外观)?

现在我已经定义了一些颜色、字体、阴影偏移等,我在我的代码中使用了很多不同的地方。这允许我改变很多元素的外观和行为,但它仍然不允许我只用一行代码来设置某个对象的所有实例的样式。

编辑

由于缺乏更好的解决方案,我使用以下简单方法创建了许多类别:

+ (UIButton *)customLabelWithFrame:(CGRect)frame andText:(NSString *)text;

我还发现 - 结合所描述的类别 -可拉伸图像很好而且有用。

有了以上内容,我可以以全局方式进行样式设置,但是我对结果不满意,我仍然希望找到更好的解决方案

4

2 回答 2

0

我认为一个非常好的解决方案可能是设计界面的 Android 方式。Android 依赖 XML 文件来定义用户界面。事实上,我正在开发一个旨在为我正在从事的项目提供大致相同功能的库。它仍然是一项正在进行的工作/实验,因此代码非常混乱(您已被警告!),但它可能会给您一些想法。

可以在此处下载示例项目:http: //dl.dropbox.com/u/6487838/WSLayoutManager.zip

通过添加控件对 XML 文件进行一些试验。创建自定义控件类并从 XML 文件等实例化它们......这很有趣:)

于 2012-04-10T19:26:42.973 回答
0

正如您自己提到的,标准子类化或工厂类怎么样!?对于按钮,我自己使用工厂类。

于 2012-04-10T19:33:58.647 回答