2016-09-07 3 views
1

여러 줄의 레이블 (myLabel.numberOfLines = 0)을 사용하여 어떤 종류의 줄 바꿈을 사용하지 않도록 설정 했으므로 한 줄이 너무 길어서 그냥 멈추는 라벨/종류가 떨어져서 줄을 감싸고 있지 않나요? 그래서 "\ n"을 사용하여 문자열의 다른 줄에 문자열을 할당 할 수 있습니다. 나는 너무 오래 자동으로 다음 줄로 감싸는 줄을 알고 있지만 줄 바꾸기 옵션이 없는지는 잘 모릅니다. 내가 한 줄에 10 개 문자의 라인 최대로 레이블이 있다면여러 줄 UILabel에서 줄 바꿈 사용 안 함

그래서

var firstLine : String = "This is 16 chars" 
var secondLine : String = "This is too long" 
myLabel.text = firstLine + secondLine 
// It would look like this: 

출력 : 같이

This is 16 
This is to 

그냥 차단하고 나던 그들이 그나마에도 불구하고 각 줄 바꿈 fit

+0

캔트가 질문을 이해 ... 방금 설정 한 회선 레이블을 원하는 경우'numberOfLines = 1 '을, 당신은 0 = 설정하고 당신은 1 개 라인되고 싶어요 ???? – Tj3n

+0

하단의 예에서 더 명확하게했습니다. 여러 줄 –

+0

'ByClipping'의 lineBreakMode 설정을 시도해 보셨습니까? numberOfLines도 0이지만 시도해 볼만한 곳에서는 사용하지 않았습니다. – Michael

답변

0

원하는 길이의 레이블이 있으면이 멍청한 방법을 시도해 볼 수 있습니다. 직접 문자열을 자르려면 stringByPaddingToLength 메서드를 사용하십시오. 코드 아래

시도 :

self.tempLabel.text = @"This is 16 chars fbaebfbefbefbeif"; 
self.tempLabel.text = [self.tempLabel.text stringByPaddingToLength:10 withString:@"" startingAtIndex:0]; 

마법이

+0

문제는 idk입니다. 얼마나 많은 문자가 한 줄에 들어갈 수 있습니까 (10은 예제 용이었습니다). –

+0

각 문자의 길이를 먼저 알아 내려고 할 수 있습니다. CGSize textSize = [[label text] sizeWithFont : [label font ]]; CGFloat strikeWidth = textSize.width; NSUInteger characterCount = [myString length]; CGFloat eachCharLength = strikeWidth/characterCount; 은 그것이 광고 저장할 수있는 많은 단어 계산 라벨 폭을 사용 = self.tempLabel.frame.size.width/F eachCharLength CGFloat 단계; NSInteger numberOfCharCapicityInLine = floorf (f); 그런 다음 self.tempLabel.text = [self.tempLabel.text stringByPaddingToLength : numberOfCharCapicityInLine withString : @ ""startingAtIndex : 0]; – KTang

+0

구문이 올바르지 않을 수도 있지만 논리를 따라 할 수 있습니다. 내 MAC을 사용하고 있지 않습니다. – KTang

0

firstLine + secondLine 1 문자열 This is 16 charsThis is too long 될 것이다 발생을 참조, 난 당신이 코드없이 설명, 수동에 문자열을 차단해야 같은 것을 할 수 있다고 생각하지 말아 10 자와 마지막에 \ n을 추가, 그래서이 될 것입니다 This is 16\nThis is to

뭔가 같은 :

,
+0

문제는 idk가 neccasarily 라인의 길이 그래서 나는 그것을 자동으로 잘라 버리고 싶어. –

+0

나는 그 문자열의 크기를 셀 수있는 아이디어를 가지고있다. 그리고 그 문자열의 크기가 레이블의 너비에 맞을 때까지 1 문자 씩 떼어 낸다. 꽤 많은 루프 이후에 가장 좋은 아이디어인지 모른다. – Tj3n

+0

답을 확인하고 시도해 보라. 이 문제를 해결할 수있는 더 좋은 방법이 있지만 지금 가지고있는 유일한 방법은 – Tj3n