默认背景颜色为黑色。如何更改颜色,类似于导航栏的tintColor
?
答案 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,否则将引发错误。