간단한 질문입니다. UIButton, currencySelector가 있고 프로그래밍 방식으로 텍스트를 변경하고 싶습니다. 내가 가진 것은 다음과 같습니다.
currencySelector.text = "foobar"
Xcode는 “예상 선언”오류를 표시합니다. 내가 뭘 잘못하고 있으며 버튼의 텍스트를 어떻게 변경합니까?
답변
스위프트 3, 4, 5에서 :
button.setTitle("Button Title", for: .normal)
그렇지 않으면:
button.setTitle("Button Title", forState: UIControlState.Normal)
또한에 대해 @IBOutlet
선언해야합니다 button
.
답변
Swift 및 iOS 프로그래밍에 익숙하지 않은 사용자를위한 설명입니다 . 아래 코드 줄 :
button.setTitle("myTitle", forState: UIControlState.Normal)
에만 적용 IBOutlets
하지 IBActions
.
따라서 앱에서 버튼을 함수로 사용하여 코드를 실행하고 (예 : 음악 재생) 토글 변수 Play
를 Pause
기반으로 제목을 변경하려는 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으로 타겟팅합니다.