[ios] UIButton의 텍스트 정렬 센터를 만드는 방법은 무엇입니까? IB 사용

IB를 중심으로 사용하여 UIButton의 제목을 설정할 수 없습니다. 내 제목은 여러 줄입니다.
이렇게해서
여기에 이미지 설명을 입력하십시오

하지만 난 이걸 좋아해
여기에 이미지 설명을 입력하십시오

나는 이것에 공간을 주었지만 그렇게하고 싶지 않습니다. 어떤 경우에는 정확하게 정렬되지 않고 정렬을 설정하는 UILabel 속성이 있지만 그 코드를 작성하고 싶지 않습니다. IB에서 모든 것을 설정하고 싶습니다.

감사



답변

이것은 정확히 당신이 기대했던 것을 만들 것입니다 :

목표 -C :

 [myButton.titleLabel setTextAlignment:UITextAlignmentCenter];

iOS 6 이상의 경우

 [myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];

tyler53의 답변에 설명 된 대로

빠른:

myButton.titleLabel?.textAlignment = NSTextAlignment.Center

스위프트 4.x 이상

myButton.titleLabel?.textAlignment = .center


답변

라인을 사용하십시오 :

myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

내용을 가로로 배치해야합니다.

레이블 내부의 텍스트를 가운데로 설정하려면 다음을 사용하십시오.

[labelOne setTextAlignment:UITextAlignmentCenter];

IB를 사용하려면 XCode 4에 링크 된 작은 예제가 있지만 세부 정보를 충분히 제공해야합니다 (또한 속성 화면 위에 속성 탭이 표시됩니다. XCode에서 동일한 탭을 찾을 수 있습니다) 3.x) :
여기에 이미지 설명을 입력하십시오


답변

해결책 1

스토리 보드에서 키 경로를 설정할 수 있습니다

텍스트를 여러 줄 제목으로 설정하십시오 (예 : hello + multiline

텍스트를 다음 줄로 이동 하려면 + 를 눌러야 합니다.

여기에 이미지 설명을 입력하십시오

그런 다음 키 경로를 추가하십시오.

titleLabel.textAlignment같은 Number가치 1, 1수단 NSTextAlignmentCenter
titleLabel.numberOfLines등의 Number가치는 0, 0라인의 수를 의미

여기에 이미지 설명을 입력하십시오

이것은 IB / Xcode에는 반영되지 않지만 런타임 (장치 / 시뮬레이터) 중앙에 있습니다.

Xcode의 변경 사항을 보려면 다음을 수행해야합니다. (이 단계를 건너 뛸 수 있음을 기억하십시오)

  1. 버튼을 디자인 할 수 있도록 UIButton을 서브 클래 싱하십시오.

    import UIKit
    @IBDesignable class UIDesignableButton: UIButton {}
    

  2. 이 디자인 가능한 서브 클래스를 수정중인 버튼에 할당하십시오.

Interface Builder를 사용하여 버튼의 클래스를 변경하는 방법 표시

  1. 올바르게 설정하면 Designables 상태가 “최신”(몇 초가 걸릴 수 있음) 일 때 IB의 시각적 업데이트가 표시됩니다.

Interface Builder의 디자인 가능 및 기본 버튼 비교


솔루션 2

코드를 작성하려면 긴 프로세스를 수행하십시오.

1. IBOutlet버튼 2를
만듭니다. viewDidLoad에서 코드 작성

btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0

솔루션 3

엑스 코드의 최신 버전에서 우리는 특성에 기인 제목이 (광산은 엑스 코드 6.1)
을 선택 Attributed후 아래의 텍스트 및 프레스 센터 옵션을 선택합니다

추신 : 텍스트가 여러 줄로 나오지 않아서

btn.titleLabel.numberOfLines = 0

여기에 이미지 설명을 입력하십시오


답변

UIButton의 경우 다음을 사용해야합니다.

[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];


답변

iOS 8 및 Swift

btn.titleLabel.textAlignment = NSTextAlignment.Center

또는

btn.titleLabel.textAlignment = .Center


답변

현재 iOS 6 이상을 사용하는 사용자의 경우 UITextAlignmentCenter가 더 이상 사용되지 않습니다. 이제 NSTextAlignmentCenter입니다.

예 : mylabel.textAlignment = NSTextAlignmentCenter;완벽하게 작동합니다.


답변

스위프트 4, xcode 9

myButton.contentHorizontalAlignment = .center