2011-09-28 97 views
2

看起来苹果公司的UIToolbar和一些可以放在其上的控件(如UISegmentedControl)允许非常有限的自定义。例如,我们希望我们的工具栏,看起来像这样的模拟:如何自定义UISegmentedControl字体颜色和UIToolbar渐变?

toolbar screenshot

然而,UIToolbar只有一个单一的tintColor和3内置barStyle值,你可以适用于它,所以我们不能获取我们之后的渐变。有没有像许多其他控件一样设置背景图像的方法?

更糟糕的是,UISegmentedControl不允许您指定字体或字体颜色。它似乎强制白色11pt Helvetica带有阴影,而白色几乎无法读取,我们正在使用的光线tintColor

我不想重写UISegmentedControl只是为了改变文字的颜色。但是唯一的solution I've seen非常黑客 - 它会深入到子视图的子视图,并改变这些属性 - 只要苹果觉得要改变或禁用它,似乎就会停止工作。

苹果是否真的反对我们改变我们的分段控件的文字颜色,还是有什么我在这里失踪?

更新:苹果终于增加了自定义iOS 5外观的功能。请参阅jfortmann's answer

回答

1

您想要使用setBackgroundImage:forState:barMetrics:方法(可能在您的外观代理上)设置背景图像。可以使用setTitleTextAttributes:forState修改文本。最后,您需要更改setDividerImage可能状态的分隔符:...

文档对于图像的外观非常丰富。

+0

是的,这是一个很好的答案 - 但是,这些新功能仅适用于iOS 5或更高版本。我在这个问题的更新中注意到了这一点。 –