【发布时间】:2017-12-04 12:53:05
【问题描述】:
当我试图清理一些代码时,我想使用视图的外观。但是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 上的键盘按钮(撤消、重做和粘贴)也有其他外观而不是默认的。有什么办法可以解决这个问题吗?此外,是否有一个我可以安全使用而不会“破坏”其他视图的外观列表(比如在这种情况下是键盘按钮)?我不是在谈论所有出现的列表,因为我发现了这个here。
我的想法是只选择我的UIViewController(还包含导航栏)中的按钮,但显然键盘也是UIViewController 的子项。我希望有一种方法不需要在按钮周围添加自定义视图或包装器。
【问题讨论】:
标签: ios objective-c ipad