默认背景颜色为黑色。如何更改颜色,类似于tintColor
导航栏?
问问题
4111 次
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 回答