2012-10-10 3 views
9

다음 코드를 사용하여 일반 UIButton을 사용자 지정하면 텍스트 필드의 UIBarButtonItems 및 지우기 단추에도 영향을줍니다.UIBarButtonItems에 영향을주지 않고 UIButton의 모양을 설정하는 방법은 무엇입니까?

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

나는 하지 모두, 정규 라운드 RECT 버튼에서 후자의 요소를 사용자 정의 할 않습니다. appearanceWhenContainedIn :을 사용하여 UIBarButtonItems 및 UITextField에 대한 사용자 정의 모양을 설정하는 데 사용할 수 있지만이 단추가 표준으로 유지되기를 바랍니다. 서브 클래 싱은 단순한 작업에는 필요하지 않으므로 여기서는 옵션이 아닙니다.

비슷한 질문이 있지만 문제를 해결하지 못합니다. 내가 전에 사용했던 Why does -[[UIButton appearance] setBackgroundImage] affect the initial appearance of UIBarItem objects and how do you correct it?

+1

분명히 배경 이미지를 설정하여 UITextField 문제를 해결할 수있었습니다. 좋은 해결책은 아니지만. –

+0

UIBarButtonItem을 어떻게 초기화하고 있습니까? "customView"속성을 UIButton 객체로 설정 하시겠습니까? UIBarButtonItem을 만드는 방법에 대한 샘플 코드를 제공 할 수 있다면, 제가 도울 수 있다고 확신합니다 ... 내 앱에서 모양 프록시와 바 버튼/UIButtons를 사용하여 많은 customizations를하고 이러한 문제가 없었습니다. – DiscDev

답변

2

하나 개의 솔루션은에 전무 UINavigationBar의 내부에 포함 된 UIButtons에 대해 "backgroundImage의"속성 아웃 :

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

이는 건드리지 않고, 다른 경우에 UIButtons을 사용자 정의 할 수 있도록한다 UINavigationBar의 UIBarButtonItem 내부에있는 것들.

관련 문제