답변:
버튼 buttonType
이 사용자 정의 로 설정되어 있어야합니다 .
IB에서는 "강조 이미지 조정"을 선택 취소 할 수 있습니다.
프로그래밍 방식으로 사용할 수 있습니다 theButton.adjustsImageWhenHighlighted = NO;
"비활성화"상태에서도 비슷한 옵션을 사용할 수 있습니다.
IB에서 "강조 이미지 조정"을 선택 해제하는 위의 응답 외에도 버튼 유형이 CUSTOM으로 설정되어 있는지 확인하십시오.
이것은 당신을 위해 작동합니다 :
[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
세 번째 줄은 여기 속임수입니다 ...
이것은 이미지 / backgroundImage 설정과 동일하게 작동합니다.
adjustsImageWhenHighlighted
속성은 UIButton
배경 이미지에만 영향을주는 것 같습니다.
기본값에서 강조 표시된 버튼 상태로 변경되는 내용에 따라 몇 가지 메소드를 호출하여 필요한 것으로 설정할 수 있습니다. 이미지가 바뀌면
[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted];
텍스트가 바뀌면 할 수있는 일
[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted];
다른 유사한 기능 :
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
OK. 이것이 이것이 당신을 위해 작동한다면 쉬운 해결책입니다. 이것에 대해 머리를 두드리는 일주일 후에 TouchUpInside 또는 TouchDown에 대한 IBAction 메소드의 첫 번째 줄에 대해 highlight = NO를 설정하는 것이 나에게 효과적이었습니다. 나를 위해 TouchUpInside에서 괜찮 았습니다.
-(IBAction)selfDismiss:(id)sender {
self.btnImage.highlighted = NO;
NSLog(@"selfDismiss");
etc, etc, etc.
}