2012-03-07 11 views
3

빠른 스크롤링 기술을 구현할 때 CoreText를 사용하여 표보기 셀에 텍스트를 그립니다. 내 텍스트의 링크는 다른 색상으로 클릭에 응답하지만 클릭 한 것처럼 보이는 링크를 얻는 방법, 즉 도청 될 때 색상을 변경 한 다음 다시 변경하는 방법을 알아낼 수 없습니다. 나는 이것을 여러 애플 리케이션에서 보았지만 그것이 어떻게 이루어 졌는지 확신 할 수 없었다. CoreText로이 작업을 수행 할 수 있습니까? 아니면 다른 작업을 사용해야합니까?CoreText - 도청시 텍스트 색상 변경

UILabels을 사용하여이 작업을 수행 할 수 있지만 셀의 내용보기에서 직접 텍스트를 그릴 목적이 없습니다.

감사합니다.

답변

3

텍스트의 색을 변경할 때마다 텍스트를 그리는보기에 -setNeedsDisplayInRect :를 보내야합니다. 또한 텍스트 색상에 해당하는 변수를 설정하십시오.

뷰가 다시 그려지고 drawLayer : inContext :가 호출 될 때 kCTForegroundColorAttributeName이 올바른 색 (사용자가 설정 한 변수를 기반으로)로 설정되어 있고 텍스트를 다시 그려야합니다.

코어 텍트가 아닌 UIKit/UIStringDrawing.h의 메소드와 비슷한 기술을 사용할 수도 있습니다.

+0

그래서 터치가 시작될 때이 메서드를 호출하고 터치가 끝나면 텍스트를 다시 원래 색으로 다시 그립니다. – kschins

+0

예! -setNeedsDisplay :를 사용하여 텍스트 링크의 rect가 없어도 전체 셀을 다시 그리지 만 더 많은 그림을 그릴 수 있음을 알 수 있습니다 (느리게). – iccir