저는 PDF 리더 응용 프로그램을 만들고 있습니다. PDF 콘텐츠를 렌더링하기 위해 CALayer를 사용하고 있습니다 .i는 페이지 전체를 탐색하기 위해 스 와이프 동작을 사용했습니다. 사용자가 레이어의 렌더링이 시작되면 다음 또는 이전 페이지로 이동합니다. 현재 페이지의 렌더링이 레이어로 끝나면 '다음 페이지로 이동'작업이 수행됩니다. 현재 페이지의 렌더링을 중단하고 싶습니다. 즉시 스 와이프가 발생하고 다음 페이지가 레이어에서 렌더링을 시작해야합니다. 모든 아이디어가 도움이됩니다.iPhone에서 CALayer의 콘텐츠 업데이트를 중단 하시겠습니까?
업데이트 : 여기에서도 내가 "loadingThread을"취소 최대한 빨리, 내 액션 메소드에서, 코드가
[loadingThread cancel];
[loadingThread release];
loadingThread=nil;
같은 기록으로 스 와이프로 내 코드
-(void)loadSinglePageWithWidth:(float)width andHeight:(float)height{
draw=0;
NSLog(@"before draw");
[markupView.layer insertSublayer:renderingLayer1 above:tiledLayer1];
loadingThread=[[NSThread alloc] initWithTarget:self selector:@selector(loadSinglePage) object:nil];
[loadingThread start];
}
-(void)loadSinglePage{
[renderingLayer1 setNeedsDisplay];
}
입니다 drawLayer : 메서드의 실행이 running.am 것 같다이 스레드 접근법으로 올바른? drawLayer : 코드 setNeedsDisplay 메서드를 호출하는 데 사용하고 스레드에 의해 실행됩니다?
나는 말한대로 스레드를 시도했지만 렌더링 및 충돌하는 동안 다른 페이지로 스 와이프하면 "누락되었거나 잘못된 이미지 '너비'값"과 같은 GDB의 일부 오류가 표시됩니다. – Hariprasad
그렇다고해서이 접근법이 작동하지 않는다는 것을 의미하지는 않습니다. 다시 구현하려고 할 수 있습니다. 코드를 제공하면 버그를 찾을 수 있습니다. – Anton