development

UIButton의 강조 표시 제어 상태를 비활성화하는 방법은 무엇입니까?

big-blog 2020. 6. 22. 07:21
반응형

UIButton의 강조 표시 제어 상태를 비활성화하는 방법은 무엇입니까?


선택하면 터치 할 때 상태를 변경해서는 안되는 UIButton이 있습니다. 기본 동작은 터치하는 동안 UIControlStateHighlighted에있는 것이므로 화가납니다.

제안?


버튼 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 = 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


OK. 이것이 이것이 당신을 위해 작동한다면 쉬운 해결책입니다 .1 주일 동안 머리를 두드리고 나면 TouchUpInside 또는 TouchDown에 대한 IBAction 메소드의 첫 번째 줄에 대해 highlight = NO를 설정하거나 어떤 것이 든 작동했습니다. 나를 위해 TouchUpInside에서 괜찮 았습니다.

-(IBAction)selfDismiss:(id)sender {

    self.btnImage.highlighted = NO;

    NSLog(@"selfDismiss");

    etc, etc, etc.

}

Swifty Developer의 경우-

yourButton.adjustsImageWhenHighlighted = false

스위프트 3+

button.adjustsImageWhenHighlighted = false

button.adjustsImageWhenDisabled = false

단지 두 가지 :

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

비슷한 문제가 발생하여 인터페이스 빌더에서 그래픽 컨텐츠 지우기를 "선택 취소"하면 문제가 해결 된 것으로 나타났습니다.

여기에 이미지 설명을 입력하십시오


당신의 버튼 유형- "사용자 정의"및 선택 취소-강조 이미지 조정을 완료하면 완료됩니다.


UIButton의 줄 바꿈Clip 으로 설정하지 말고 대신 표준 자르기 중간을 사용하십시오.

여기에 이미지 설명을 입력하십시오

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

반응형