【问题标题】:How to customize UISegmentedControl font color and UIToolbar gradient?如何自定义 UISegmentedControl 字体颜色和 UIToolbar 渐变?
【发布时间】:2011-11-27 03:20:09
【问题描述】:

Apple 的UIToolbar 和您可以在其上放置的一些控件(例如UISegmentedControl)似乎允许非常有限的自定义。例如,我们希望我们的工具栏看起来像这样模拟:

但是,UIToolbar 只有一个 tintColor 和 3 个内置的 barStyle 值可以应用于它,因此我们无法获得我们所追求的渐变。有没有办法像许多其他控件一样设置背景图像?

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

我不想重写UISegmentedControl 只是为了改变文本颜色。但是唯一的solution I've seen 非常老套——它会挖掘子视图的子视图并更改它们的属性——似乎只要 Apple 想要更改或禁止它,它就会停止工作。

Apple 真的反对我们更改分段控件上的文本颜色,还是我在这里遗漏了什么?

更新:Apple 终于在 iOS 5 中添加了自定义外观的功能。见jfortmann's answer

【问题讨论】:

    标签: objective-c uikit uitoolbar uisegmentedcontrol


    【解决方案1】:

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

    这些文档对图像的外观提供了非常丰富的信息。

    【讨论】:

    • 是的,这是一个很好的答案——但是,这些新功能仅在 iOS 5 或更高版本中可用。我在问题的更新中注意到了这一点。
    猜你喜欢
    • 2010-12-31
    • 2010-11-14
    • 1970-01-01
    • 2012-02-20
    • 2021-06-27
    • 2012-01-15
    • 1970-01-01
    • 2013-01-28
    • 2019-02-21
    相关资源
    最近更新 更多