programing

UIButton의 하이라이트 제어 상태를 비활성화하는 방법은 무엇입니까?

closeapi 2023. 7. 10. 22:24
반응형

UIButton의 하이라이트 제어 상태를 비활성화하는 방법은 무엇입니까?

터치할 때 상태가 바뀌지 않아야 하는 UI 버튼이 있습니다.터치 중에 UI 컨트롤 상태가 강조 표시되는 것이 기본 동작이며, 이로 인해 화가 납니다.

제안?

단추에 단추가 있어야 합니다.buttonType사용자 지정으로 설정합니다.

IB에서 "Highlight adjusted image(영상 강조 조정)"를 선택 취소할 수 있습니다.

프로그래밍 방식으로 사용할 수 있습니다.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];

세 번째 줄이 여기서의 요령입니다.

이것은 이미지/배경 이미지를 설정할 때도 동일하게 작동합니다.

adjustsImageWhenHighlighted = NO;
button.adjustsImageWhenDisabled = NO;

사용할 수 없는 단추 모양을 사용하는 경우에도 마찬가지로 유용합니다.

단추의 기본 상태에서 강조 표시된 상태로 변경되는 내용에 따라 몇 가지 방법을 호출하여 필요한 항목으로 설정할 수 있습니다.그래서 이미지가 바뀌면 당신은 할 수 있습니다.

[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

스위프티 개발자용 -

yourButton.adjustsImageWhenHighlighted = false

스위프트 3+

button.adjustsImageWhenHighlighted = false

button.adjustsImageWhenDisabled = false

좋아요, 이것이 당신에게 효과가 있다면 여기 쉬운 해결책이 있습니다, 이것에 대해 머리를 부딪친 지 일주일 후에 마침내 강조 표시를 해야 한다는 생각이 들었습니다=TouchUpInside 또는 TouchDown에 대한 IBAction 방법의 첫 번째 줄에 대한 NO.저에게는 터치업 인사이드가 괜찮았습니다.

-(IBAction)selfDismiss:(id)sender {

    self.btnImage.highlighted = NO;

    NSLog(@"selfDismiss");

    etc, etc, etc.

}

단추 유형 - "사용자 정의" 및 선택 취소 - 강조 표시된 이미지 조정이 완료되었습니다.

단 두 가지:

UIButton *btnTransparentComponent = [UIButton buttonWithType:UIButtonTypeCustom];
btnTransparentComponent.adjustsImageWhenHighlighted = NO;

비슷한 문제가 있었는데 인터페이스 빌더에서 "확인 해제" 그래픽 콘텐츠 지우기 문제가 해결되었습니다.

enter image description here

의 도입 후Style스타일을 다음으로 설정해야 합니다.DefaultIB에서 유형을 로 설정합니다.Custom강조 표시 효과를 완전히 비활성화할 수 있습니다.그렇지 않으면 단추 텍스트가 계속 강조 표시됩니다.

*설정Style로.Default텍스트 색상을 흰색으로 재설정합니다.

UIButton의 바꿈을 자르기로 설정하지 않고 표준 중간 자르기를 사용합니다.

enter image description here

언급URL : https://stackoverflow.com/questions/2259905/how-to-disable-the-highlight-control-state-of-a-uibutton

반응형