[ios] 프로그래밍 방식으로 신속하게 UIButton의 텍스트 변경

간단한 질문입니다. UIButton, currencySelector가 있고 프로그래밍 방식으로 텍스트를 변경하고 싶습니다. 내가 가진 것은 다음과 같습니다.

currencySelector.text = "foobar"

Xcode는 “예상 선언”오류를 표시합니다. 내가 뭘 잘못하고 있으며 버튼의 텍스트를 어떻게 변경합니까?



답변

스위프트 3, 4, 5에서 :

button.setTitle("Button Title", for: .normal)

그렇지 않으면:

button.setTitle("Button Title", forState: UIControlState.Normal)

또한에 대해 @IBOutlet선언해야합니다 button.


답변

SwiftiOS 프로그래밍에 익숙하지 않은 사용자를위한 설명입니다 . 아래 코드 줄 :

button.setTitle("myTitle", forState: UIControlState.Normal)

에만 적용 IBOutlets하지 IBActions.

따라서 앱에서 버튼을 함수로 사용하여 코드를 실행하고 (예 : 음악 재생) 토글 변수 PlayPause기반으로 제목을 변경하려는 IBOutlet경우 해당 버튼에 대한 버튼 도 만들어야 합니다.

button.setTitle대해 사용하려고 IBAction하면 오류가 발생합니다. 일단 당신이 그것을 알면 분명하지만, 멍청한 놈들 (우리 모두는 그렇습니다)에게 이것은 유용한 팁입니다.


답변

스위프트 5 :

    let controlStates: Array<UIControl.State> = [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved]
    for controlState in controlStates {
        button.setTitle(NSLocalizedString("Title", comment: ""), for: controlState)
    }


답변

스위프트 3 :

버튼 제목 설정 :

//for normal state:
my_btn.setTitle("Button Title", for: .normal)

// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)


답변

스위프트 5.0

// Standard State
myButton.setTitle("Title", for: .normal)


답변

기여했을 때 제목 변경이 약간 다릅니다.

방금 문제가 발생했습니다. 속성 제목이있는 UIButton이 있으면 다음을 사용해야합니다.

my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)

같은 당 애플 setTitle이라는 닥 :

버튼의 제목과 속성 제목을 모두 설정하면 버튼은이 제목보다 속성 제목을 사용하는 것을 선호합니다.

귀중한 제목이 있었고 아무런 효과없이 제목을 설정하려고했습니다 …


답변

스위프트 3

@IBAction을 만들 때 :

@IBAction func btnAction(_ sender: UIButton) {
  sender.setTitle("string goes here", for: .normal)
}

그러면 발신자가 Any 대신 UIButton으로 설정되므로 btnAction을 UIButton으로 타겟팅합니다.