4

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

4

3 回答 3

5

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

迅速

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

Objective-C

[[NSClassFromString(@"UICalloutBarButton") appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
于 2016-02-25T13:37:52.743 回答
4

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

编辑:我查看了 UIMenuController.h 文件,似乎没有任何明显的方法可以更改颜色。如果对您有帮助,它是 NSObject 的子类。此外,如果您查看人们如何将 UITabBarController 子类化以更改其颜色,您可能会找到类似的解决方案。

于 2011-03-29T01:10:21.760 回答
0

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

Objective-C

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

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

于 2019-09-02T06:26:13.813 回答