gpt4 book ai didi

uibutton - UIMenuController 中的文本颜色受 UIButton 外观设置影响

转载 作者:行者123 更新时间:2023-12-02 04:09:10 27 4
gpt4 key购买 nike

我观察到以下情况:

通过设置 UIButton标题颜色就外观而言,UIMenuItemsUIMenuControllerUITextView得到相同的颜色。

applicationDidFinishLaunching中的代码:

[[UIButton appearance] setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];  

我的问题:

有没有办法抑制它

给一个UIMenuItems另一种颜色?

我尝试过的:

  1. 外观WhenContainedIn UITextview
    我尝试使用
    设置 TextView 中包含的按钮的外观 [UIButton appearanceWhenContainedIn:[UITextView class], nil]
    但这显然行不通,因为 UIMenuController不在 TextView 内部。

  2. 外观WhenContainedIn UIMenuController/UIMenuItem
    不可能,因为两者都没有实现 UIAppearanceContainer 协议(protocol)。

最佳答案

我找到了解决此问题的两种方法。

以下是以下解决方案的结果屏幕截图:

enter image description here

第一个解决方案

UIMenuController 不包含在 View Controller View 层次结构中。因此,您可以通过这种方式定义 UIButton 颜色(而不是设置全局按钮外观):

swift :

UIButton.appearanceWhenContainedInInstancesOfClasses([UIViewController.self]).setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)

Objective-C:

[[UIButton appearanceWhenContainedInInstancesOfClasses:@[UIViewController.class]] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

该解决方案适用于大多数情况。但是,如果您使用删除按钮表格 View 单元格的操作按钮,它也会采用设置的颜色,并且您将无法更改该颜色 通过外观代理。

第二种解决方案(我的首选)

第二种解决方案直接使用 Apple 在菜单 Controller 中使用的私有(private) UIButton 子类类名。我永远不会建议访问私有(private) Apple 类(而且还通过其名称),但在特定的菜单 Controller 颜色自定义情况下,我认为这是最好的解决方案。它可以让您定义查看外观的简洁方式。

swift :

定义全局按钮标题颜色外观:

UIButton.appearance().setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)

MenuController 的特定异常:

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

Objective-C:

定义全局按钮标题颜色外观:

[[UIButton appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

MenuController 的特定异常:

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

关于uibutton - UIMenuController 中的文本颜色受 UIButton 外观设置影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26461981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com