2011-11-03 4 views
0

일부 텍스트로 rect를 채워야합니다. rect의 크기는 고정되어 있습니다. iOS. adjustsFontSizeToFitWidth 메서드가 제대로 작동하지 않습니다.

- (void)drawText:(NSString *)text onView:(UIView *)view inRect:(CGRect)rect 
{ 
    UILabel *lbl = [[UILabel alloc] initWithFrame:rect]; 
    lbl.minimumFontSize = 1; 
    lbl.font = [UIFont systemFontOfSize:30]; 
    [lbl setText:text]; 
    lbl.adjustsFontSizeToFitWidth = YES; 
    [view addSubview:lbl]; 
    [lbl release]; 
} 

그런 다음 나는이 비슷한 쓰기 :

[self drawText:@"Asdfghjkl;" onView:view inRect:CGRectMake(45, 40, 85, 13)]; 
[self drawText:@"qwertyui" onView:view inRect:CGRectMake(173, 31, 126, 22)]; 

를 그리고 난의 cutted 텍스트를 가져

나는 다음과 같은 기능을 사용할 수 있습니다. 내 실수는 어디 갔지?

답변

0

필자는 주된 문제는 일부 텍스트가 너비에만 적합하지만 너비와 높이 모두에 맞아야한다는 것입니다. 그래서 나에게 가장 빠른 해결책은 Gargolev 말했듯이, 그것은 폭에 맞게 조정합니다 더 큰 투명 UILabel의를하고 정렬

2

를 사용하여 내부에 텍스트를 넣어하는 것입니다.

따라서 제공되는 높이에 맞는 fontSize를 선택해야합니다.

당신이 사용하려고하고있는 글꼴에 대한 사전 지식없이 실행시이를 위해 단순한 솔루션은 다음과 같습니다

UILabel *label = [[UILabel alloc] initWithFrame:myView.bounds]; 
label.font = [UIFont fontWithName:@"Helvetica" size:1.f]; 
float fontAspectFactor = 1.f/label.font.lineHeight; 
label.font = [UIFont fontWithName:@"Helvetica" size:myView.height*fontAspectFactor]; 
[myView addSubview:label]; 
관련 문제