[objective-c] UIButton 텍스트 변경

그래서 클릭하면 UIButton의 텍스트를 업데이트하려고합니다. 다음 줄을 사용하여 텍스트를 변경하고 있습니다.

calibrationButton.titleLabel.text = @"Calibration";

텍스트가 변경되고 있음을 확인했지만 앱을 실행하고 버튼을 클릭하면 잠시 “Calibration”으로 변경된 다음 기본값으로 바로 돌아갑니다. 왜 이런 일이 일어날 지 아이디어가 있습니까? 호출해야 할 일종의 새로 고침 기능이 있습니까?



답변

하위 뷰를 배치 할 때 UIButton은 자체 제목 값을 사용하여 titleLabel의 텍스트 값을 설정하므로 네 가지 상태 (일반, 강조 표시, 선택됨, 비활성화 됨)에 대해 최대 4 개의 다른 문자열을 설정할 수 있습니다.

이 기능으로 인해 titleLabel의 텍스트를 직접 설정하는 것은 지속되지 않으며 하위 뷰를 레이아웃 할 때 버튼으로 재설정됩니다.

버튼 상태의 제목 텍스트를 변경하기 위해 수행해야하는 작업입니다.

[calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];


답변

버튼 텍스트를 설정하려면 다음 방법을 사용하십시오.

[calibrationButton setTitle: @"Calibration" forState: UIControlStateNormal];

자세한 내용은 UIButton클래스 참조를 참조하십시오 …
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

또는 Swift 3 :

calibrationButton.setTitle("Calibration", for: .normal)


답변

프로그래밍 방식으로 아래와 같이 버튼 제목을 설정할 수 있습니다.

[myButton setTitle:@"buttonTitle" forState:UIControlStateNormal];

스토리 보드에서 버튼 제목 속성을 설정할 수도 있습니다.


답변

큰 문제는 아니고 분명 할 수도 있지만 버튼에 사용할 수있는 여러 상태가 있습니다. ‘잘못된’항목을 제공하면 원하는대로 텍스트 변경이 표시되지 않습니다.

여기에 표시된 방법을 사용하여 추가 한 텍스트가 내 버튼에 표시되지 않는 것으로 나타났습니다. 이 링크를 확인하여 원하는 UIControlState를 제공하고 있는지 확인하십시오.

UIControlStateHighlighted와 UIControlStateSelected의 차이점은 무엇입니까?


답변

Swift 3.0의 경우

let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
button.setTitle("set here", for: .normal)
button.addTarget(self, action: #selector(TableViewController.actionButtonTocuh), for: .touchUpInside)
button.titleLabel?.textColor  = #colorLiteral(red: 0.1019607857, green: 0.2784313858, blue: 0.400000006, alpha: 1)
view.addSubview(button)


답변

Swift 2.0의 경우 :

let btnObject : UIButton  = UIButton()
btnObject.frame = CGRect(x: 8, y: 89, width: 70, height: 22)
btnObject.setTitle("Button Title", forState: UIControlState.Normal)
btnObject.titleLabel?.font = UIFont(name: "Helvetica Neue", size: 13)
btnObject.titleLabel?.textColor = UIColor.whiteColor()
btnObject.backgroundColor = UIColor(red: 189/255, green: 176/255, blue: 0/255, alpha: 1)
btnObject.titleLabel?.textAlignment = NSTextAlignment.Center
btnObject.addTarget(self, action: "btnbtnObjectClick:", forControlEvents: UIControlEvents.TouchUpInside)
subView.addSubview(btnObject)


답변

모든 상태의 제목을 설정하지 않으려면 설정되지 않은 상태의 제목이 기본적으로 일반 상태의 제목으로 설정되므로 일반 상태로 설정하면됩니다.

btn.setTitle("Some text", for:.normal)