2013-07-21 3 views
7

iOS> 5.0 및 Xcode 4.6.2를 사용하는 앱을 개발 중입니다. 내 문제를 설명하기 위해 UILabel 묶음 만 포함 된 UIScrollView입니다. 이 UILabel에 표시 할 텍스트는 동적이지만 UILabel의 프레임은 일정하므로 현재 텍스트가 프레임 너비에 맞지 않으면 글꼴 크기를 줄여야합니다. 그래서 adjustsFontSizeToFitWidth 속성은 UILabel입니다.adjustsFontSizeToFitWidth가 제대로 작동하지 않습니다.

다음은 직접 UILabel 클래스 참조에서 가져온 설명입니다.

제목 문자열을 레이블의 경계 사각형에 맞추기 위해 글꼴 크기를 줄여야하는지 여부를 나타내는 부울 값입니다.

Yeap, 내가 정확히 UILabel에 표시하려고하는 텍스트가 정확히 한 줄로 생각했습니다. 그래서이 속성은 numberOfLines 속성을 1로 설정해야 함을 알고 있습니다.

여기에 이런 일이 발생하는 코드가 있습니다.

for (NSString *currentImage in self.imagesNames) 
{ 
    UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(imageNumber*resultTypeImageWidth, 10, 75, 35)]; 
    [lbl setFont:[UIFont fontWithName:@"GothamRounded-Bold" size:25]]; 
    [lbl setNumberOfLines:1]; 
    [lbl setText:currentImage]; 
    [lbl setBackgroundColor:[UIColor clearColor]]; 
    [lbl setTextColor:[UIColor colorWithHue:0.07 saturation:1 brightness:0.49 alpha:1.0]]; 
    [lbl adjustsFontSizeToFitWidth]; 
    [lbl setTextAlignment:NSTextAlignmentCenter]; 
    imageNumber++; 
    [self.resultTypeScrollView addSubview:lbl]; 
} 

imageNumber 내가 이름 resultTypeScrollViewUIScrollView에 적절한 장소에서이 UILabel의를 배치하는 사용 해요 INT입니다. resultTypeImageWidth은 정의한 상수이고 UILabel 사이에 공백을주기 위해 100을 설정합니다.

내 문제는 텍스트가 레이블의 프레임에 맞지 않으면 잘라 버릴 수 있다는 것입니다. 텍스트가 프레임에 맞지 않으면 폰트 크기가 축소되어 프레임에 맞을 것으로 예상했습니다. 적어도, 그게 내가 이해할 수있는 것입니다. UILabelclass reference. 분명히, 나는 무엇인가 놓치고있다. 그러나 무엇?

지금까지

,

  1. 내가 정의 글꼴을 사용하고 있듯이, 나는 사용자 정의 글꼴을 사용하는 것은 문제가 될 것이라고 생각한다. 그래서, 나는 시스템 글꼴 중 하나로 변경했다. 아무 효과가 없다.
  2. 텍스트가 잘리지 않도록 NSLineBreakMode에서 NSLineBreakByClipping으로 설정하려고했습니다. 그 후, 텍스트는 잘리지 않지만 일부 문자는 전에 잘 렸습니다.
  3. minimumScaleFactor도 다른 값을 설정하여 효과가 있는지 확인했지만 전혀 효과가 없는지 확인했습니다.
+0

많은 기본값을 변경하지 않고 설정하면됩니다. 한가지 주목해야 할 것은 코드가 adjustsFontSizeToFitWidth를 설정하지 않는다는 것입니다. 설정은 다음과 같습니다. lbl.adjustsFontSizeToFitWidth = YES; – danh

+0

@ 단, 그게 문제였다. 나는 그것을 놓친 이유를 모르겠다. 답으로 의견을 추가한다. 내가 받아 들일 테니, 고마워. – limon

+0

다행히 도왔다. 감사. – danh

답변

8

많은 기본값을 변경하지 않고도 작동합니다. 게시 된 코드는 adjustsFontSizeToFitWidth으로 설정되지 않고 가져옵니다. 설정은 다음과 같습니다.

lbl.adjustsFontSizeToFitWidth = YES; 
+0

굉장 !! 고마워. – nithinreddy

관련 문제