UILabel에 줄 바꿈을 추가하려면 어떻게 해야 합니까?
다음과 같은 문자열이 있는지 확인합니다.
NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";
UILabel이 메시지를 이렇게 표시하도록 하려면 어떻게 해야 합니까?
aa입니다.
입니다.BB입니다.
CCCCCCC입니다.
는 그렇게 생각하지 않아요.\n
UILabel에서 인식하는데, 줄 바꿈을 만들어야 한다는 것을 UILabel이 알 수 있도록 NSString에 넣을 수 있는 것이 있습니까?
사용하세요.\n
이겁니다.
임의의 수의 행을 허용하려면 numberOfLines를 0으로 설정합니다.
label.numberOfLines = 0;
프레임을 업데이트하여 텍스트의 크기에 맞춥니다.sizeWithFont:
. 이렇게 하지 않으면 텍스트가 수직으로 중앙에 놓이거나 잘립니다 이렇게 하지 않으면 텍스트가 수직으로 중앙에 놓이거나 잘립니다.
UILabel *label; // set frame to largest size you want
...
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:label.lineBreakMode];
label.frame = CGRectMake(
label.frame.origin.x, label.frame.origin.y,
label.frame.size.width, labelSize.height);
업데이트: 사용되지 않는 에 대한 대체입니다.
sizeWithFont:constrainedToSize:lineBreakMode:
참조, 사용되지 않는 크기를 대체합니다.WithFont: iOS 7에 있습니까?
CGSize labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
label.frame = CGRectMake(
label.frame.origin.x, label.frame.origin.y,
label.frame.size.width, labelSize.height);
Interface Builder의 작은 상자에 입력할 때 option-return을 사용하여 줄 바꿈(\n)을 삽입합니다.Interface Builder의 Label 특성에서 # Lines = 0을 설정합니다.
레이블을 선택한 다음 위의 이미지와 같이 선 속성을 0으로 변경한 다음 줄 바꿈에 \n을 문자열에 사용합니다.
인터페이스 작성기에서 +를 사용하여 삽입할 수 있습니다./n
이겁니다.이렇게 하면 다음과 같은 상황이 실현될 수 있습니다.
, 그래요?
아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아
파일에서 문자열을 경우 줄 바꿈 XML이 사용됩니다.\n
문자열에서는 이 문자열이 작동하지 않습니다.UILabel
텍스트입니다.\n
이렇게 이야기합니다.
다음은 이 문제를 해결하기 위한 작은 요령입니다.
// correct next line \n in string from XML file
NSString *myNewLineStr = @"\n";
myLabelText = [myLabelText stringByReplacingOccurrencesOfString:@"\\n" withString:myNewLineStr];
myLabel.text = myLabelText;
그래서 파싱되지 않은 것을 교체해야 합니다.\n
구문 분석으로 현을 .\n
하드코드로 있습니다NSString
요.
다른 레이블 설정은 다음과 같습니다.
myLabel.numberOfLines = 0;
myLabel.backgroundColor = [UIColor lightGrayColor];
myLabel.textColor = [UIColor redColor];
myLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:14.0];
myLabel.textAlignment = UITextAlignmentCenter;
가장 중요한 것은 설정입니다.numberOfLines
로로 이동합니다.0
(= = = 레 ( ( 、 제 、 ( 、 ( 、 ( 、 。
애플이 왜 을 구문 분석하지 않기로 선택했는지 알 수 없습니다.\n
X에서 문자열입니다.ML 서 ml ml ml ml ml ml ml ml ml ml ml ml?
이렇게 세팅해야 돼요.numberOfLines
재산에 관한 것입니다.UILabel
. 기본값은 1이며, 0으로 설정하면 모든 제한이 제거됩니다.
주의할 점은 이겁니다.\n
백슬래시)보다는 (백슬래시)가 낫습니다./n
요.
쉬운 솔루션을 원하는 사용자는 Interface Builder의 레이블 입력 상자에서 다음을 수행하십시오.
줄 수가 0으로 설정되어 있는지 확인하십시오.
Alt +를 클릭합니다.
(Alt가 옵션 키입니다.)
건배!
Swift 2.2에서는 > iOS 8입니다.
Storyboard의 Attribute Inspector에서 Lines = 0을 설정하고 참조 아웃렛을 레이블에 연결했습니다.그런 다음 컨트롤러에서 다음과 같이 사용합니다.
@IBOutlet weak var listLabel: UILabel!
override func viewDidLoad() {
...
listLabel.text = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5\nLine 6\nLine 7\nLine 8"
}
11에서 Swift 5는 xCode 11로 Swift 5는 Swift 5입니다.\n
정상적으로 작동합니다. 다음 코드를 사용해 보십시오.
textlabel.numberOfLines = 0
textlabel.text = "This is line one \n This is line two \n This is line three"
그냥 이렇게 하세요.
NSString * strCheck = @"A\nB";
strCheck = [strCheck stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; //This is to prevent for fetching string from plist or data structure
label.numberOfLines = 0;
label.lineBreakMode = NSLineBreakByWordWrapping;
label.text = strCheck;
// numberOfLines를 0으로 설정하는 것을 잊지 마십시오.
UILabel* locationTitle = [[UILabel alloc] initWithFrame:CGRectMake(5, 30, 230, 40)];
locationTitle.font = [UIFont systemFontOfSize:13.0];
locationTitle.numberOfLines = 0;
locationTitle.text = [NSString stringWithFormat:@"Eaton industries pvt. Ltd \nUK Apr 12"];
[cell addSubview:locationTitle];
를 사용하는 경우입니다.UILabel
기본 설정은 한 줄이므로 브레이크 수를 추가하는 것은 문제가 되지 않습니다(\n
아니면요?\r
두 개 이상의 행으로 설정되어야 추가 행을 추가할 수 있습니다.
한 가지 대안은 다음을 사용하는 것입니다.UITextView
다행성을 뜻합니다.
UILabel의 XCode 속성 섹션에서 쉽게 이 작업을 수행할 수 있습니다. 스크린샷을 참조하십시오.
Xcode 6에서는 워드랩을 사용할 때 문자열 내부에서도 \n을 사용할 수 있습니다.그건 작동할 것이다.예를 들어 다음과 같습니다.
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, screenRect.size.width, 50)];
label.textAlignment = NSTextAlignmentCenter;
label.text = @"This will be on the first line\nfollowed by a line under it.";
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
또한 \n이 작동하지 않는 경우, \n행 수를 0으로 유지하여 문제를 해결하고 텍스트 자체를 복사하여 붙여넣은 Hello\n World 대신 새 행으로 붙여넣었습니다.
안녕하세요.
세계
인터페이스 작성기에서 확인할 수 있습니다.
그냥 사용해요label.numberOfLines = 0;
textLabel.text = @"\nAAAAA\nBBBBB\nCCCCC";
textLabel.numberOfLines = 3; \\As you want - AAAAA\nBBBBB\nCCCCC
textLabel.lineBreakMode = UILineBreakModeWordWrap;
NSLog(@"The textLabel text is - %@",textLabel.text);
문제가 있을 수 있는 다른 사람을 위해서요sizeWithFont:constrainedToSize:lineBreakMode:
또는 ios8로 전환하는 사람(ios7에서 이 방법은 권장되지 않음)을 사용하여 높이를 조절했습니다.sizeToFit
대신.
UILabel *label;
label.numberOfLines = 0;
// Setup label with desired settings
...
[label sizeToFit];
label.frame = CGRectMake(label.frame.origin.x, // Or use any desired origin
label.frame.origin.y,
label.frame.size.width, // Or use any desired width
label.frame.size.height);
NSCharacterSet *charSet = NSCharacterSet.newlineCharacterSet;
NSString *formatted = [[unformatted componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@"\n"];
특히 오토레이아웃을 사용할 때 라벨 프레임 크기를 변경하는 것은 잘못된 것 같습니다.appendFormat 메서드를 사용하는 것이 더 적절합니다.다음은 예를 들어 보겠습니다.
NSMutableString *list = [[NSMutableString alloc] init];
NSArray *textArray = @[@"AAAA", @"BBBB"];
for (NSString *string in textArray) {
[list appendFormat:@"%@\n", string.mutableCopy];
}
self.label.text = list;
self.label.numberOfLines = 0;
UILable 속성을 일반에서 속성으로 설정하면 다음과 같습니다.UILabel 높이와 너비가 텍스트를 표시하려는 화면 영역에 맞게 설정되어 있으므로 UILabel은 문단 수에 관계없이 여러 줄의 텍스트를 유지합니다.
저도 같은 문제에 직면했고, 이것이 제가 문제를 어떻게 해결했는지에 대한 것입니다.이것이 누군가에게 도움이 되기를 바랍니다.
// Swift 2입니다.
lblMultiline.lineBreakMode = .ByWordWrapping // or use NSLineBreakMode.ByWordWrapping
lblMultiline.numberOfLines = 0
// 목표-C
lblMultiline.lineBreakMode = NSLineBreakByWordWrapping;
lblMultiline.numberOfLines = 0;
// C#(Xamarin.i)입니다.OS)를 선택합니다.
lblMultiline.LineBreakMode = UILineBreakMode.WordWrap;
lblMultiline.Lines = 0;
Xcode 6에서는 swift에서 문제없이 \n을 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2312899/how-to-add-line-break-for-uilabel 입니다.
'programing' 카테고리의 다른 글
ASP와 함께 SAS를 사용합니다.그물 (0) | 2023.04.25 |
---|---|
null 열을 사용하여 고유한 제약 조건을 생성합니다. (0) | 2023.04.25 |
Windows 명령줄에서 실행할 프로그램의 경로를 찾는 중입니다. (0) | 2023.04.25 |
2012년 XAML 디자이너의 배경색을 변경하는 방법은 무엇입니까? (0) | 2023.04.25 |
엑셀 행이 409.5의 높이로 잠겨 있는데 크기를 늘리고 싶습니다. (0) | 2023.04.25 |