9

使用以下代码自定义常规 UIButtons 也会影响 UIBarButtonItems 和文本字段中的清除按钮。

[[UIButton appearance] setBackgroundImage:greenButtonImage forState:UIControlStateNormal];

我根本希望自定义后面的元素,只希望自定义圆形矩形按钮。我意识到使用 appearanceWhenContainedIn: 可用于为 UIBarButtonItems 和 UITextField 设置自定义外观,但我希望这些按钮保持标准。子类化在这里不是一个选项,因为这样一个简单的任务不需要它。

有一个类似的问题,但它没有解决这个问题。为什么 -[[UIButton appearance] setBackgroundImage] 会影响 UIBarItem 对象的初始外观以及如何纠正它?

4

1 回答 1

3

我之前使用的一种解决方案是取消包含在 UINavigationBar 内的 UIButtons 的“backgroundImage”属性:

[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundImage:nil forState:UIControlStateNormal];

这应该允许您在其他情况下自定义 UIButton,而无需触摸 UINavigationBar 中的 UIBarButtonItem 内的那些。

于 2015-10-21T14:06:31.827 回答