iPhone SMS와 같은 텍스트의 일부에 밑줄을 긋는 방법은 무엇입니까?
문제
UILabel을 사용하여 여러 줄 및 UILineBreakModeWordWrap 모드에서 텍스트를 표시하고 최대 너비는 200입니다.
예를 들어 텍스트는 다음과 같습니다.
I really really want to underline first word and second word, could you help me?
그리고 "첫 번째 단어"와 "두 번째 단어"에 밑줄을 긋고 싶습니다.
텍스트가 NSString의 sizeWithFont 메서드를 사용하여 한 줄 모드로 표시되면 "첫 번째 단어"의 위치를 쉽게 계산한 다음 - (void)drawTextInRect:(CGRect)ect를 재정의하여 선을 그릴 수 있습니다.
하지만 여러 줄 모드에서는 위치를 얻는 방법을 모르겠습니다.어떤 생각이 있나요?
해결책
iPhone에서 누락된 NSAttributedString에 대해 꽤 많은 논의가 있었고 사람들은 이 문제를 해결하기 위해 자신만의 텍스트 레이아웃 시스템을 구축하기 시작했습니다.이 분야에서 몇 가지 프로젝트가 진행되고 있습니다.당신은 다음을 살펴보고 싶을 수도 있습니다 Three20 프로젝트 그리고 그것의 TTStyledTextLabel.
다른 팁
UIWebView를 사용하여 텍스트를 표시합니다.이것이 Apple이 리치 텍스트에 대해 권장하는 사항입니다.
제휴하지 않습니다 StackOverflow