UIButton 제목 텍스트 색상


답변:


438

사용하다

목표 -C

[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

빠른

headingButton.setTitleColor(.black, for: .normal)

2
이 작동합니다. 그러나 원래 질문의 코드도 종종 작동합니다. 제목이 때로는 질문의 코드에 응답하지 않는 이유를 아는 사람이 있습니까?
crgt

7
그 이유는 버튼을 클릭하거나 상태를 변경하면 버튼의 코드가 titleLabel의 속성을 버튼이 해당 상태에 대한 내부 설정과 일치하도록 재설정하기 때문입니다.
psycotica0

1
apple 문서에 다음과 같이 기술되어 있습니다. "label 객체를 사용하여 텍스트 색상 또는 그림자 색상을 설정하지 마십시오. 대신이 클래스의 setTitleColor : forState : 및 setTitleShadowColor : forState : 메소드를 사용하여 변경하십시오." "왜"에 대한 실제 설명은 없습니다.
clauswey

가장 중요하게 UIControlStateNormal에 대한 색상을 설정할 때 다른 모든 상태에 대해 색상을 설정할 필요는 없습니다 (누를 때 버튼이 동일하게 보이도록하려면).
drpawelo

앱 델리게이트에서 버튼 텍스트 색상을 전체적으로 변경하는 방법 아마도 UIButton.appearance (). setTitleColor를 사용하고 있습니까?
Awais Fayyaz

5

에서 확장 된 커스텀 클래스 MyButton을 만들었습니다 UIButton. 그런 다음 이것을 안에 추가했습니다 Identity Inspector:

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

그런 다음 버튼 유형을 Custom으로 변경하십시오 .

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

그럼 당신은 같은 속성을 설정할 수 있습니다 textColorUIFont대한 UIButton여러 상태를 들어 :

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

그런 다음 MyButton클래스 안에 두 개의 메소드를 만들었습니다.이 메소드 UIButton는 강조 표시 된대로 표시하려면 코드 내에서 호출해야합니다 .

- (void)changeColorAsUnselection{
    [self setTitleColor:[UIColor colorFromHexString:acColorGreyDark] 
               forState:UIControlStateNormal & 
                        UIControlStateSelected & 
                        UIControlStateHighlighted];
}

- (void)changeColorAsSelection{
    [self setTitleColor:[UIColor colorFromHexString:acColorYellow] 
               forState:UIControlStateNormal & 
                        UIControlStateHighlighted & 
                        UIControlStateSelected];
}

의 설명서에 따라 한 번에 둘 이상의 상태가있을 수 있으므로 titleColor를 일반, 강조 표시 및 선택 으로 설정해야합니다 . 이러한 방법을 만들지 않으면 선택 또는 강조 표시가 표시되지만 내부 설정에 유지되지는 않습니다 .UIControlStateUIControlStateUIButtonUIColorUIInterface Builder 선택 자체를 표시하지 않고 짧은 선택 표시 만 할 수 있기 때문에 되지 않습니다.


마지막 코드 스 니펫 |대신에 사용해서는 안 &됩니까?
130e13a

5

스위프트에서 :

라벨 텍스트 색상을 변경하는 것은의 라벨 텍스트 색상을 변경하는 것과는 다릅니다 UIButton. 사용하기 위해 텍스트 색상을 변경하려면 UIButton이 방법을 사용하십시오.

self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)

0

스위프트 5 버전 :

기본 내장 색상을 사용하여 :

  1. button.setTitleColor(UIColor.green, for: .normal)

또는

RGB 방법을 사용하여 사용자 정의 색상을 사용할 수 있습니다.

  1. button.setTitleColor(UIColor(displayP3Red: 0.0/255.0, green: 180.0/255.0, blue: 2.0/255.0, alpha: 1.0), for: .normal)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.