2012-11-28 3 views
0

UITextView으로 구성된 '회계 테이프'가 포함 된 계산기 앱이 있습니다. 테이프에 약 50-100 줄이 생기면 텍스트보기가 업데이트 속도가 매우 느려지므로 새 내용 (50-100 줄 텍스트)을 쉽게 설정하는 데 100 밀리 초 이상 걸릴 수 있습니다. 문제는 UIKit이 주 스레드에서 호출되는 것을 주장하기 때문에이 지연을 백그라운드로 이동할 수 없다는 것입니다.UITextView에 대한 업데이트 속도를 높이려면 어떻게해야합니까?

어떻게해야합니까? 마음에 오는 유일한 정보는 작업에 더 잘 맞을 수있는 사용자 정의 UIView 하위 클래스를 사용하여 테이프를 다시 작성하는 것입니다. 그러나이 작업을 많이 수행하므로이 작업과는 별개로 UITextView이 잘 작동하므로 열심히하지는 않습니다. 문제.

답변

1

50 개 라인 만 처리 할 때 문제가 발생한다는 것에 매우 놀랐습니다. 그래서 여기에 다른 것이 있는지 궁금합니다. Instruments의 "Time Profiler"를 통해 코드를 실행하고 문제가 실제로 UITextView이 아닌 다른 것이 아닌지 확인합니다. 약간의 연구는 여기에 포기하기 전에 보증 해 줄 수 있습니다. UITextView,

두 번째로 처음부터 다시 시작해야한다고 생각하고 UITextView을 사용하지 마십시오. 기존 컨트롤을 활용할 것을 제안 할 수 있습니다 (예 : UITableView 셀 사이에 구분자가 없거나 최악의 경우 최악의 경우는 UIScrollView이며 테이프의 각 줄은 UILabel이고 화면 밖으로 스크롤 한 레이블은 UITableView 스타일 대기열에서 제외됩니다. 처음부터 시작하는 것보다 조금 더 나은 옵션.

0

천천히 그리고 뭔가 다른 것이 아니라고 가정한다면, 나는 그 부분 만 볼 수 있도록 텍스트 뷰의 텍스트를 변경하는 것이 좋습니다. 외부로 스크롤 된 모든 텍스트는 텍스트 뷰에 보관할 필요가 없습니다. 물론 스크롤링 동작이 그대로 유지되도록 필요하면 자동 스크롤을 구현하거나 제거 된 행에 빈 줄을 사용해야합니다.

관련 문제