2013-06-11 2 views
0

메서드로 전달하는 코드에 theString이라는 긴 문자열이 있습니다.이 메서드는 화면에 그려야합니다. 당신이 볼 수 있듯이- [NSString drawInRect :]의 크기를 문자열의 내용으로 결정할 수 있습니까?

-(void)drawRect:(CGRect)rect 
{ 
    [super drawRect:rect]; 
    [theString drawInRect:CGRectMake(0, 0, self.bounds.size.width, 200)]; 
} 

, 방금 화면 크기로 폭을 설정할 수 있지만 높이가 전달되는 문자열이 서로 다른 길이의 경우 문제가있는 수동으로 설정해야합니다. 프레임이 필요한 높이를 자동으로 어떻게 감지합니까? 또한 앞으로는 다른 글꼴 스타일의 속성이있는 문자열을 포함하도록이 기능을 확장 할 수도 있으므로 문자를 세는 것은 좋은 옵션이 아닐 수도 있습니다.

CGSize theStringSize = [theString sizeWithFont:myFont]; 

마지막으로, 당신의 문자열의 너비를 설정 : 당신이 할 수있는 일

+0

[문자열의 픽셀 너비 측정] 가능한 복제본 (http://stackoverflow.com/questions/1435544/measuring-the-pixel-width-of-a-string) –

+0

그럴 생각합니다. 귀착 된 문자열이 다른 글꼴, 스타일 등을 가지도록 도와주세요. 맞습니까? – Giovanni

+0

특별히 'NSAttributedString'사용에 대해 질문하는 경우 질문을 편집하여 반영하십시오. 유사한 방법이 있습니다. http://developer.apple.com/library/ios/documentation/UIKit/Reference/NSAttributedString_UIKit_Additions/Reference/Reference.html#//apple_ref/doc/uid/TP40011688-CH1-SW7 –

답변

2

은과 같이, NSString의 방법 sizeWithFont:를 사용하여 텍스트가 다음

UIFont *myFont = [UIFont fontWithName:@"SOME_NAME" size:16]; 

그리고있을 것이다 폰트를 얻을 수있다 높이 :

[theString drawInRect:CGRectMake(0, 0, theStringSize.width, theStringSize.height)]; 

희망이 있습니다.

+0

불행히도 thats 내 문제는 텍스트가 결국 headings, 다른 크기의 글꼴 등 layed outed 텍스트의 전체 페이지가 될 것입니다 그래서 sizeWithFont 사용하면 제대로 작동하지 않을까요? – Giovanni

0

RTLabel으로 처리 할 수 ​​있습니다.

RTLabel.h

RTLabel.m에 의해 사용이 링크에서 다운로드 : 세트 텍스트 객체 RTLabel에, 또한 HTML 문자열 헨델과 RTLabel 객체의 크기를 얻을 것이다, 그것은 텍스트의 크기가됩니다.

관련 문제