2014-04-10 4 views
0

UIScrollView 내에 CATiledLayer가 표시된 UIView가 있습니다.업데이트 도중 UIScrollView 내용 고정

특정 시간에 스크롤 뷰 원점을 기준으로 창 내용의 위치를 ​​변경해야합니다.

스크롤 뷰의 contentOffset 속성을 변경해야하지만 내용을 다시 그릴 때 내용은 동일합니다.

시퀀스는

scrollView.contentOffset = newoffset ; 
[contentView setNeedsDisplay] 

이가있는 ScrollView 시프트 같은 경련 효과를 생성한다.

드로잉이 완료 될 때까지 스크롤보기의 표시 영역을 고정 할 방법이 있습니까? 본질적

제가

하려는

[FREEZE 표시] scrollView.contentOffset = newoffset; 당신은 UIScrollView의 대리자 방법으로 그 일을해야

답변

0

// 그러나 눈에 보이는 변화 이 없다 [있는 contentView setNeedsDisplay] 은 [잠시 후에 DISPLAY 고정 취소]. 업데이트를 적절히 수행하는 데 사용할 수있는 매우 구체적인 메소드가 있습니다.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; 

이 세 가지 방법 중 하나는 당신이 찾고있는 타이밍으로 전화를 걸 것이라고 확신합니다.

마지막으로,이 대리자를 사용할 때 setNeedsDisplay 메서드를 몇 번 호출했는지 조심하십시오. setNeedsDisplay은 매 밀리 초마다 호출하면 메모리가 저렴하지 않습니다! 더 감속이없는 경우

건배

+0

다시 그리기는 scrollViewDidEndDecelerating 또는 scrollViewDidEndDragging에서 실행됩니다. 나는 아직도 그 물건을 얼리지 못했다. – user3344003

관련 문제