2014-04-20 2 views
0

내보기에 문장을 추가해야합니다. 그러나 그 문장은 아주 크다. 그래서 몇 줄로 정의 된 CGRect 안에 넣고 글꼴 크기를 변경하여 모든 문장을이 CGRect에 표시합니다. 그리고 글꼴 크기는 가능한 한 커야합니다. 여기NSString을 추가하여 사각형 크기를 정의하는 방법

내가 사용하고있는 코드 :

NSAttributedString *sentence = [[NSAttributedString alloc] initWithString:@"The sentence with some words" attributes:@{NSFontAttributeName: wordsFont,NSBackgroundColorAttributeName:[UIColor yellowColor]}]; 


CGRect sentenceBounds; 
sentenceBounds.size = [sentence size]; 
CGSize neededSize = CGSizeMake(MAX_WIDTH, MAX_HAIGHT); 
sentenceBounds.size = neededSize; 


sentenceBounds.origin = CGPointMake(0, 0); 

[sentence drawInRect:sentenceBounds]; 
+0

흠 ... 나는 특성 문자열과 크기의 최대 글꼴 크기가 발견 될 때까지 글꼴 크기를 반복적으로 검색하는 코드가 있다고 생각합니다. 웹이나 StackOverflow에서 찾은 코드가 기본이었습니다 (잊어 버렸습니다). 아무도 더 나은 것을 게시하거나 더 나은 해결책이 없다면 나는 그것을 파고 게시 할 것입니다. –

답변

1

당신이 UILabel에 포함되어 찾고있는 모든 기능을. 네가 그걸 사용할 수 없다는 이유가 있니?

UILabel *label = [UILabel new]; 
label.adjustsFontSizeToFitWidth = YES; 
label.numberOfLines = 0; 
label.attributedText = sentence; 
label.frame = CGRectZero; //set desired frame here; 
[self addSubview:label]; 
+0

왜 나는 내 자신을 굴렸는지 기억이 안나지만 문자열의 너비가 높이보다 훨씬 크고 다른 경우에는 그렇지 않은 경우에만 작동한다고 생각합니다. 하지만 그것은 OP가 원하는 것일 수 있습니다. –

+0

이 경우, 너비와 높이가 MAXFLOAT 인 UILabel을 항상 초기화 할 수 있습니다. 그런 다음 레이블에서 sizeToFit을 호출하면 높이가 적절하게 조정됩니다. – Nick

+0

안녕하세요, 감사합니다. 나는 UILable을 사용하려고 시도했으나 한 줄에 모든 문자열을 표시합니다. 문자열을 여러 줄에 두거나 3 줄을 써야합니다. (미안, 내 영어는 유창하지 않다) –

관련 문제