是否可以自定义UIMenuController的颜色?

时间:2011-03-29 00:24:53

标签: iphone uimenucontroller

默认背景颜色为黑色。如何更改颜色,类似于导航栏的tintColor

3 个答案:

答案 0 :(得分:5)

更改文本颜色的可能解决方案包括在UIMenuController中使用UIButton的外观代理。问题是它直接使用Apple在菜单控制器中使用的私有UIButton子类。我永远不会建议访问私有Apple类(以及通过其名称),但在特定的菜单控制器颜色定制案例中,我认为这是最好的解决方案。它允许您定义视图外观的干净方式。

<强>夫特

(NSClassFromString("UICalloutBarButton")! as! UIButton.Type).appearance().setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)

<强>目标C

[[NSClassFromString(@"UICalloutBarButton") appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

答案 1 :(得分:4)

我很确定这是不可能的。如果你将它子类化,你或许可以解决一些问题。

编辑:我看了一下UIMenuController.h文件,似乎没有任何明显的方法来改变颜色。它是NSObject的子类,如果它可以帮助你。另外,如果你看一下人们如何将UITabBarController子类化来改变它的颜色,你就可以找到类似的解决方案。

答案 2 :(得分:0)

您可以这样设置UIMenuController的背景颜色-

Objective-C

[[NSClassFromString(@"UICalloutBarButton") appearance] setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.8]];

请确保您使用的颜色具有透明度/ alpha,否则将引发错误。