다음 코드가 있습니다 …
UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds];
buttonLabel.text = @"Long text string";
[targetButton addSubview:buttonLabel];
[targetButton bringSubviewToFront:buttonLabel];
… 버튼에 여러 줄 텍스트를 가질 수 있지만 UIButton의 backgroundImage에 의해 텍스트가 항상 가려집니다. 버튼의 하위 뷰를 표시하기위한 로깅 호출은 UILabel이 추가되었지만 텍스트 자체는 볼 수 없음을 나타냅니다. 이것은 UIButton의 버그입니까, 아니면 내가 잘못하고 있습니까?
답변
iOS 6 이상의 경우 다음을 사용하여 여러 줄을 허용하십시오.
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
// you probably want to center it
button.titleLabel.textAlignment = NSTextAlignmentCenter; // if you want to
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
iOS 5 이하의 경우 다음을 사용하여 여러 줄을 허용하십시오.
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
// you probably want to center it
button.titleLabel.textAlignment = UITextAlignmentCenter;
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
2017 년 iOS9 에서는
일반적으로 다음 두 가지를 수행하십시오.
- “특성 텍스트”를 선택하십시오
- “줄 바꿈”팝업에서 “워드 랩”을 선택하십시오.
답변
선택한 답변은 정확하지만 Interface Builder에서 이러한 종류의 작업을 선호하는 경우 다음을 수행 할 수 있습니다.
답변
제목이 여러 줄 중앙에있는 단추를 추가하려면 단추에 대한 인터페이스 빌더 설정을 설정하십시오.
[ ]
답변
iOS 6의 경우 :
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.textAlignment = NSTextAlignmentCenter;
같이
UILineBreakModeWordWrap and UITextAlignmentCenter
IOS 6부터는 더 이상 사용되지 않습니다.
답변
Roger Nolan의 제안을 다시 말하지만 명시 적 코드를 사용하는 것이 일반적인 해결책입니다.
button.titleLabel?.numberOfLines = 0
답변
스위프트 3
button.titleLabel?.lineBreakMode = .byWordWrapping
button.titleLabel?.textAlignment = .center
button.setTitle("Button\nTitle",for: .normal)