gpt4 book ai didi

ios - UIButton 外观也设置键盘按钮

转载 作者:行者123 更新时间:2023-11-29 00:07:26 25 4
gpt4 key购买 nike

当我试图清理一些代码时,我想使用 View 的外观。但是 UIButton 让我很烦恼。我尝试了以下方法:

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

这按预期工作,我的所有按钮都变成红色和蓝色(在我的项目中我使用了其他颜色)。我注意到导航栏中的按钮也转动了,这是我不愿意的,所以添加这一行解决了第一个问题:

[[UIButton appearanceWhenContainedInInstancesOfClasses:@[[UINavigationBar class], [UIViewController class]]] setBackgroundColor:[UIColor clearColor]];

但这些并不是唯一的按钮。 iPad 上的键盘按钮(撤消、重做和粘贴)也有默认外观以外的其他外观。有什么办法可以解决这个问题吗?另外,是否有一个我可以安全使用而不会“破坏”其他 View (例如本例中的键盘按钮)的外观列表?我不是在谈论所有出现的列表,因为我发现了这个here .

我们的想法是仅选择 UIViewController 中的按钮(其中还包含导航栏),但显然键盘也是 UIViewController 的子级。我希望有一种方法不需要在按钮周围添加自定义 View 或包装器。

最佳答案

使用空实现创建 MyBaseViewController 作为 UIViewController 的子类。将所有 viewController 更改为从 MyBaseViewController 继承。更改对appearanceWhenContainedInInstancesOfClasses 方法的调用以引用MyBaseViewController。

您当前的代码将影响 UIViewController 的所有实例,包括嵌入 Foundation 或 UIKit 中的实例。通过使用您自己的基类,您实际上创建了一个过滤器,将您的 viewController 与其他 viewController 隔离开来。

关于ios - UIButton 外观也设置键盘按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47633871/

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