Swift로 UIButton의 글꼴을 변경하는 방법


207

Swift를 사용하여 UIButton의 글꼴을 변경하려고합니다 ...

myButton.font = UIFont(name: "...", 10)

그러나 .font더 이상 사용되지 않으며 글꼴을 변경하는 방법을 잘 모르겠습니다.

어떤 제안?

답변:


421

titleLabel대신 사용하십시오 . 이 font속성은 iOS 3.0에서 더 이상 사용되지 않습니다. Objective-C에서도 작동하지 않습니다. titleLabel에 제목을 표시하는 데 사용되는 레이블입니다 UIButton.

myButton.titleLabel?.font =  UIFont(name: YourfontName, size: 20)

그러나 제목 텍스트를 설정하는 동안을 사용해야합니다 setTitle:forControlState:. titleLabel제목 텍스트를 직접 설정하는 데 사용하지 마십시오 .


1
왜 내가 '포장 풀어야'하는지 알고 있습니까? 내 라벨 ?? 이처럼 ... myButton.titleLabel! .font = ...
DanMoore

beacause titleLabel는 선택적 속성입니다. 이전에 베타 버전에 감사했습니다.
codester

4
이 방법을 사용하면 글꼴 이름 / 스타일을 변경할 수 있었지만 size 속성을 변경해도 아무런 차이가 없었습니다.
Dave G

7
라벨을 강제로 풀지 않아도됩니다. myButton.titleLabel?.font = ...그냥 어떤 조합 수 없습니다 전무 titleLabel 경우 때문에 작동합니다
teradyl

1
이 메소드가 왜 사용자 정의 UIbutton 서브 클래스에서 작동하지 않습니까?
Munib

69

대한 스위프트 3.0 :

button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)

여기서 "boldSystemFont"및 "16"은 사용자 정의 글꼴 및 크기로 바꿀 수 있습니다.


44

점 표기법이 훌륭합니다 (빠른 4.2) 👌

btn.titleLabel?.font = .systemFont(ofSize: 12)

@mahasam UIFont가 유추됩니다.이 답변은 다른 답변과 동일하지만 UIFont가없는 것입니다 (그러나 컴파일러에서 유추하지만 동일합니다) PD : 항상 이런 식으로 쓰려고하지만 즉 동일 알
파블로 산체스 고메즈

1
@mahasam : "점 표기법"은 유추 된 것과 같습니다. 그리고 그렇습니다. 입양하는 것이 좋은 습관입니다. 그리고 그것은 다른 답변보다 간결한 것과 다른 답변과 동일하지 않습니다. IMO
eonist

9

titleLabel을 강제로 풀어서 설정할 필요는 없습니다.

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

여기서 titleLabel을 사용하지 않기 때문에 선택적으로 사용할 수 있으며, 그렇지 않은 경우 no-op입니다.

또한 다른 사람들이 말한 것처럼 글꼴 속성이 더 이상 사용되지 않으며 setTitle:forControlState:제목 텍스트를 설정할 때 사용해야 합니다.


7

로부터 문서 :

버튼에 텍스트를 표시하는 데 사용되는 글꼴입니다. ( iOS 3.0에서는 더 이상 사용 되지 않습니다 . 대신 font속성을 사용하십시오 titleLabel.)


5

글꼴 크기 문제가있는 경우 (글꼴이 크기 변경에 응답하지 않음) ...

@codester는 올바른 코드를 가지고 있습니다 :

myButton.titleLabel!.font =  UIFont(name: YourfontName, size: 20)

그러나 내 글꼴 크기는 변경되지 않았습니다. 존재하지 않는 글꼴 ( "HelveticaNeue-Regular")을 요청하는 것으로 나타났습니다. 충돌을 일으키지 않았지만 그 때문에 글꼴 설명을 무시하는 것 같았습니다. 글꼴을 존재하는 것으로 변경하면 "size : x"로 변경되었습니다.


5

아래와 같이 다른 유형의 시스템 글꼴을 사용할 수 있습니다

myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)

아래와 같은 사용자 정의 글꼴

    myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)

4

당신은 titleLabel속성을 통과해야 합니다.

button.titleLabel.font

font속성은 iOS 3.0부터 사용되지 않습니다.


4

여기 .

대신 버튼 titleLabel의 글꼴을 설정해야합니다.

myButton.titleLabel!.font = UIFont(name: "...", 10)

4

이것은 Swift 3.0에서 작동합니다.

btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20) 

4

AttributedString을 UIButton으로 설정하면 다음 작업을 수행 할 수 있습니다.

let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)

4

크기 만 변경해야하는 경우 ( Swift 4.0 ) :

button.titleLabel?.font = button.titleLabel?.font.withSize(12)

2

예: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • 자체 패밀리에서 defaul 글꼴을 사용하려면 "HelveticaNeue"와 같이 사용하십시오.
  • 패밀리 글꼴을 지정하려면 "HelveticaNeue-Bold"와 같이 사용하십시오.

1

이 방법은 지금 작동하지 않습니다 :

 btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)

이것은 작동합니다 :

 btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)

0

이 작업은 저에게 감사합니다. 글꼴 크기 만 변경하고 글꼴 크기 만 변경하고 싶습니다.

var fontSizeButtonBig:Int = 30

btnMenu9.titleLabel? .font = .systemFont (ofSize : CGFloat (fontSizeButtonBig))

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.