인터페이스 빌더의 iOS 멀티 라인 레이블


131

UILabeliOS 용 인터페이스 빌더에서 여러 줄을 만들려면 어떻게 해야합니까? 나는 시도 UITextView했지만 내 요구에 맞지 않았다.

라벨에 여러 줄 (텍스트)을 어떻게 추가 할 수 있습니까?


id가 귀하의 요구를 충족시키지 못한 이유를 설명 할 수 있습니까? 읽기 전용 인 TextView는 여러 줄 레이블과 같습니다.
Shreesh

강조 표시된 텍스트 색상 속성이없는 것 같습니다.
Samuli Lehtonen

7
이 질문을 방문하는 다른 사람들의 경우, 라인을 5 또는로 설정하여 승인 된 답변을 따르지 마십시오 n. 대신 0 (무한 정렬)로 설정하십시오. 아래에서 vijay의 답변을 확인하십시오.
GoodSp33d

답변:


178

레이블이 가질 수있는 최대 줄 수 numberOfLines를 정의 하는 속성을 사용할 수 있습니다. 기본적으로 입니다. 로 설정 하면 라벨에 무제한 줄생깁니다 .10

코드로 할 수 있습니다.

textLabel.numberOfLines = 5 // for example

또는 인터페이스 빌더에서 :


시도했지만 레이블을 작성할 때 작동하지만 Enter 키를 눌러 승인하면 모두 한 줄로 진행됩니다.
Samuli Lehtonen

3
그리고 width당신의 라벨은 무엇입니까?
akashivskyy

8
좋아, 나는 지금 그것을 얻었고, 키를 늘렸다. 감사!
Samuli Lehtonen

무제한 라인에 대해 라인을 0으로 설정할 수 있습니다.
paulmelnikow

2
: 또한 IB에 여러 줄 레이블을 입력하는 방법에 대해 설명이 답변을 참조하십시오 stackoverflow.com/a/992511/893113
paulmelnikow

117

Interface Builder / Storyboard의 UILabel에 행을 추가하려면 Control+ Enter를 누르십시오 .


2
고마워, 그게 내가하려고하는 일 :)
mcont

이것이 해결책이어야합니다!
SunnySonic

14
좋은데 그러나 "Q"는 필요하지 않습니다
Rendel

1
@Oliver Logic Xcode를 종료하지 않습니다 ... 당신은 올바르게 읽지 못했습니다. 그는 CONTROL + Q + ENTER (CMD + Q는 아님)라고 말했습니다. 그러나 Rendel은 CONTROL + ENTER만으로 충분합니다.
gaskbr

1
@Logic Xcode를 종료하지 않습니다 ... 올바르게 읽지 않았습니다. 그는 CONTROL + Q + ENTER (CMD + Q는 아님)라고 말했습니다. 그러나 Rendel은 CONTROL + ENTER만으로 충분합니다.
gaskbr

47

감사합니다 AppleVijay!

또한 sizeToFit를 다음과 같이 호출하십시오.

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

높이가 자동으로 계산됩니다.


11
참고 : UILineBreakModeWordWrap은 iOS6부터 더 이상 사용되지 않습니다. [label setLineBreakMode : NSLineBreakWordWrapping]을 사용하십시오. 대신에.
John Feagans

5
"By"가 없습니다. label.lineBreakMode = NSLineBreakByWordWrapping
user1872384

1
신속하게 UILineBreakModeWordWrap 대신 NSLineBreakMode.ByWordWrapping 사용
Deb

12

U를 필요에 따라 레이블의 너비를 설정 한 다음 줄 바꿈을 단어 줄 바꿈으로 설정하려면 IB를 사용하십시오.

또는 이와 같은 코드와 함께 사용하십시오.

해결책을 찾았습니다.

다음 코드 만 추가하면됩니다.

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

5

동적 텍스트 정보에 대해 줄 수를 0으로 설정하면 텍스트가 다양 할 때 유용합니다.

프로그래밍 방식으로 (Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Inetrface Builder 사용

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

참고 :를 설정할 필요는 없지만 Minimum Font Scale텍스트를 레이블 프레임에 맞추기 위해 최소 배율을 갖는 것이 좋습니다.


2

행 수는 일반 UILabels 설정 행 필드가 0으로 IB에 표시됩니다. 레이블에 제공된 공간에 따라 여러 줄을 만듭니다.


1

iOS7 (Xcode5) 0에서는 스토리 보드에서 무제한 다중 입력 을 위해 UILabel 행을 설정해야합니다 .
가장 중요한 것은 설정하려는 height of the UILabel입력 라인을 유지할 수 있도록 설정하는 것입니다.


0
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};

0

numberOfLines 속성을 0으로 설정하면 레이블이 지정된 텍스트의 필요한 줄 수로 자동 조정됩니다.


0

나는 오랫동안 이것으로 고투하고 있었다. 레이블 텍스트가 두 번째 줄에 나타나기를 원했습니다. 그러나 내가 무엇을하든 UILabel 상자가 오버플로됩니다. 나를 위해 크기 관리자에서 자동 크기 조정을 변경하는 것이 효과가있었습니다. 간단한 수정.

누군가 비슷한 것을 찾는 것이 도움이 될 수 있습니다.


-2

X 코드 7.2

  1. -UILabel을 선택하십시오

  2. -속성 관리자

  3. -텍스트-속성 선택

이 후, 당신은 또한 수 찾을 수있는 당신이 레이블을 당신에 추가 할 수 있습니다 좀 더 속성을 볼 수 있습니다 . 어떤 라벨을 여러 줄로 만듭니다.

여러 줄의 UILabel에 대한 X 코드 이미지


일반 UILabels를 사용하여 IB에서 줄 수를 볼 수 있습니다.
Graham Lea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.