使用以下代码自定义常规UIButtons也会影响文本字段中的UIBarButtonItems和清除按钮。
[[UIButton appearance] setBackgroundImage:greenButtonImage forState:UIControlStateNormal];
我不希望自定义后面的元素,只定期圆形矩形按钮。我意识到使用appearanceWhenContainedIn:可用于为UIBarButtonItems和UITextField设置自定义外观,但我希望这些按钮保持标准。子类化不是一个选项,因为这样一个简单的任务不需要它。
有一个类似的问题,但它没有解决这个问题。 Why does -[[UIButton appearance] setBackgroundImage] affect the initial appearance of UIBarItem objects and how do you correct it?
答案 0 :(得分:3)
我之前使用过的一个解决方案是为UINavigationBar中包含的UIButtons的“backgroundImage”属性取消:
[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundImage:nil forState:UIControlStateNormal];
这应允许您在其他情况下自定义UIButton,而不触及UINavigationBar中UIBarButtonItem内的UIButtons。