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

发布于 2024-10-27 16:09:40 字数 56 浏览 1 评论 0原文

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

The default background color is black. How can I change the color, similar to tintColor for navigation bars?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北渚 2024-11-03 16:09:40

更改文本颜色的一个可能的解决方案是使用 UIMenuController 内 UIButton 的外观代理。问题是它直接使用 Apple 在菜单控制器中使用的私有 UIButton 子类。我永远不会建议访问私有 Apple 类(而且还通过其名称),但在特定的菜单控制器颜色自定义情况下,我认为这是最好的解决方案。它可以让您定义查看外观的清晰方式。

Swift

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

Objective-C

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

A possible solution to change the text color consists in using the appearance proxy of the UIButton inside the UIMenuController. The thing is it uses directly the private UIButton subclass used by Apple in the Menu Controller. I would never recommend to access a private Apple class (and furthermore through its name), but in that specific Menu Controller color customization case I think that's the best solution. It lets you define the clean way your view appearances.

Swift

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

Objective-C

[[NSClassFromString(@"UICalloutBarButton") appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
醉生梦死 2024-11-03 16:09:40

我很确定这是不可能的。如果你对它进行子类化,你也许能够解决一些问题。

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

I'm pretty sure this is not possible. You may be able to work something out if you subclass it.

EDIT: I took a look at the UIMenuController.h file and there don't seem to be any obvious ways to change the color. It is a subclass of NSObject if that helps you. Also, if you take a look at how people subclass UITabBarController to change it's color you may be able to work out a similar solution.

猫七 2024-11-03 16:09:40

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

Objective-C

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

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

You can set the background color of UIMenuController like this -

Objective-C

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

Make sure that you use a color with transparency/alpha, otherwise it will throw an error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文