2012-01-23 2 views
27

Xcode에서 필자는 몇 줄의 텍스트를 넣었는가에 따라 자동 크기 조정을 할 UILabel을 만들었습니다. 는하지만이 UILabel의 높이가 일정 수준 (내 예 240)를 초과하지 않는 코드는 다음과 같이 간다 : 내 텍스트에 대한 10 ~ 15 라인 내에있을 때이 잘 작동스크롤 기능을 UILabel에 추가하는 방법

NSString *text = @"imagine this is a huge wall of text\n\n\n" 
UILabel *myLabel = [[UILabel alloc] init]; 
[myLabel setNumberOfLines:0]; 
CGSize labelSize = [text sizeWithFont:myLabel.font constrainedToSize:CGSizeMake(280, 240) lineBreakMode:myLabel.lineBreakMode]; 
myLabel.frame = CGRectMake(0, 0, 280, labelSize.height); 

. 그러나 40 줄의 텍스트를 넣으면 여분의 텍스트 줄이 내 UILabel을 벗어나 잘릴 것입니다.

스크롤 기능을 myLabel에 추가하여 myLabel의 최대 높이가 240이되도록 할 수 있으며, 아래로 스크롤하여 myLabel의 텍스트를 볼 수 있습니다.

+0

아마도 도움이 될 수 있습니다. http://stackoverflow.com/a/16860529/1463604 – Nishant

+0

26k 명의 사용자가이 질문을보고 만 19 upvote !! wierd !! –

답변

96

UITextView (reference)을 사용하십시오.

정확히 설계되었습니다. 편집을 사용하지 않도록 설정하면 스크롤 가능한 라벨이 표시됩니다. 당신은 이런있는 UIScrollView에 UILabel의를 추가 할 수 있으며, 다음과 같이 할 수

+4

UITextView는 UILabel의 드롭 인 대체물이 아닙니다. 예를 들어 (iOS 6 현재) 속성이있는 텍스트로 UILabel에서 글꼴을 설정하면 "sticks"가 변경됩니다. UITextView에서 글꼴을 설정하면 변경 내용은 UITextView에 이미있는 속성에만 적용됩니다. 새 특성 문자열을 지정하면 이전에 설정 한 글꼴이 반영되지 않습니다. (이것은 적어도 오늘 밤이 작업을 수행 한 나의 경험이었습니다.) –

+1

@JonSchneider는 UITextView가 여전히 "옳은"것인가? – rottenoats

+0

@rugdealer 나는 당신에게 확실한 대답을 드릴 수는 없다. 2014 년 후반부터 심각한 iOS 개발을 수행하지 않았습니다. –

1

--- 여기

scrollView.backgroundColor = [UIColor clearColor]; 

     UILabel * label = [[UILabel alloc] init]; 
     [label setNumberOfLines:0]; 
     label.text=[detailDict valueForKey:@"ABC"]; 
     [label setFont:[UIFont fontWithName:@"Georgia" size:16.0]]; 
     CGSize labelsize=[label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(250, 1000.0) lineBreakMode:UILineBreakModeWordWrap]; 
     int y=0; 
     label.frame=CGRectMake(38, y, 245, labelsize.height); 
     [label setBackgroundColor:[UIColor clearColor]]; 
     [label setTextColor:[UIColor whiteColor]]; 
     scrollView.showsVerticalScrollIndicator = NO; 
     y+=labelsize.height; 
     [scrollView setContentSize:CGSizeMake(200,y+50)]; 
     [scrollView addSubview:label]; 
     [label release]; 

Y 높이거나 텍스트로 라벨의 크기를 감소하는 데 사용됩니다.

+1

더 나은 옵션을 선택하면 항상 잘못된 일을 할 수 있습니다. : –

+0

UITextView 스크롤링 문제로 점점 더 많은 문제를 겪어 온 여러분에게 훌륭한 솔루션입니다. 특히 투명 탐색 모음과 혼합 된 경우 가끔 때로는 스크롤하지 않는 경우가 있습니다.이 솔루션은 특정 위치에서 작동합니다. UITextView는 실행되지 않습니다. –

관련 문제