iPhone SMS와 같은 텍스트의 일부에 밑줄을 긋는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/964027

  •  12-09-2019
  •  | 
  •  

문제

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이 리치 텍스트에 대해 권장하는 사항입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top