2009-04-16 6 views
1

나는 라인을 가지고 UI 요소로이를 수행하는 더 쉬운 방법 - 나는 모든 귀입니다. 그렇지 않으면, 나는 textWithFont를 사용하여 시행 착오없이 UILabel1에서 텍스트가 어디에서 끝나는 지 알아 내려고하고 있습니다.가장 좋은 방법은

더 복잡한 방법은 sizeWithFont를 사용하여 해당 글꼴 크기에서 각 문자의 크기를 찾고 전체를 추가하는 것입니다 (UILabel1의 줄 1에서 줄 바꿈하고 그 다음 줄 2에서 줄 바꿈을 알아내는 방법). 이것은 쉬운 문제를 해결하는 어려운 방법이라고 느낍니다. 누구나 쉽게 알 수 있습니까?

+0

실제로 텍스트가 이미지의 둘레를 흐르도록하려는 것입니까 (즉, 1 행에서 시작, 이미지 오른쪽에서 2 행, 이미지 오른쪽에서 3 행째로 넘어갑니다)? – philsquared

답변

1

아마 이것은 당신이 찾고있는 해답이 아니지만, WebView를 사용하면이 레이아웃을 더 쉽게 할 수 있습니다.

효율성 관점에서 볼 때 UILabel 텍스트 렌더링은 WebView를 통해 구현됩니다.

This article by Craig Hockenberry는 것을 확인도 시도

에 사용 통계 및 [일치] 사람들은 UILabel의의 구현에 사용 된 것을 파괴 라인이 [...] 완벽

거리가 멀다는 것을 시사하고 UILabel은 WebViews를 사용합니다 (텍스트 집약적 인 응용 프로그램의 Shark 덤프에서도 쉽게 볼 수 있습니다).

+0

UIWebView에서 더 쉽다는 것에 동의합니다. 나는 UILabels가 WebView를 사용한다고 생각하지 않는다. (WebView가 얼마나 비쌉니까?) drawTextInRect를 사용하여 문자열을 그립니다. (나는 이것이 대답 이었으면 좋겠다. 나는 Craig의 기사에서 참조를 보지 못했다. (다른 증거가 있다면 - C를 좋아할 것이다.) –

+0

Craig의 기사에서 인용 한 내용은 "UILabel의 기본 WebView"이다. 내가 말했듯이, 당신이 프로파일한다면 webcore 코드를 찾아내는 것이 꽤 쉽다. WebKit은 헤비급이지만, 나는 UILabels에도이 도구를 사용한다는 사실에 놀랐다. – duncanwilcox

1

NSString s = @ "첫 줄 \ n 두 번째 줄 \ n 마지막 줄";