[ios] 비활성화 된 UIButton이 희미하거나 회색이 아닙니다
내 iPhone 앱에는 Interface Builder에서 만든 UIButton이 있습니다. 내 코드에서 이와 같이 성공적으로 활성화 및 비활성화 할 수 있습니다 …
sendButton.enabled = YES;
또는
sendButton.enabled = NO;
그러나 버튼의 시각적 모양은 항상 동일합니다! 희미하거나 회색이 아닙니다. 그래도 클릭하면 예상대로 활성화 또는 비활성화됩니다. 뭔가 빠졌습니까? 희미 해 지거나 회색으로 보입니까?
답변
다음 코드를 사용할 수 있습니다.
sendButton.enabled = YES;
sendButton.alpha = 1.0;
or
sendButton.enabled = NO;
sendButton.alpha = 0.5;
답변
답변
또 다른 옵션은 비활성화 된 상태의 텍스트 색상 (예 : 밝은 회색)을 변경하는 것입니다.
스토리 보드 편집기 Disabled
의 State Config
팝업 버튼 에서 선택하십시오 . 사용 Text Color
텍스트 색상을 변경하려면 팝업 버튼을 누릅니다.
코드에서 -setTitleColor:forState:
메시지를 사용하십시오 .
답변
버튼이 비활성화 된 상태를 생성하도록 ( UIControlStateDisabled
회색 비활성화 된 이미지) 및 UIControlStateNormal
(일반 이미지)에 대해 서로 다른 이미지를 설정하십시오 .
답변
비활성화했을 때 버튼이 희미 해 지도록 알파를 설정할 수 있습니다. 두 가지 옵션이 있습니다.
첫 번째 방법 : 앱의 모든 버튼을 적용하려면 extension
다음과 같이 UIButton을 작성할 수 있습니다 .
extension UIButton {
open override var isEnabled: Bool{
didSet {
alpha = isEnabled ? 1.0 : 0.5
}
}
}
두 번째 방법 : 앱의 일부 버튼을 적용하려면 아래처럼 UIButton에서 사용자 정의 클래스를 작성하고 적용하려는이 클래스를 사용할 수 있습니다.
class MyButton: UIButton {
override var isEnabled: Bool {
didSet {
alpha = isEnabled ? 1.0 : 0.5
}
}
}
답변
텍스트 버튼을 사용하면 viewDidLoad 인스턴스 메소드에 넣을 수 있습니다
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
예:
[self.syncImagesButton setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
답변
의 adjustsImageWhenDisabled
속성을 사용할 수 있습니다UIButton
(@property (nonatomic) BOOL adjustsImageWhenDisabled)
전의:
Button.adjustsImageWhenDisabled = false