2009-03-17 4 views
4

내 응용 프로그램은 UIScrollView 안에 UIImageView으로 이루어져 있으며 그 안에 큰 이미지가 표시됩니다. 스크롤 뷰는 사용자가 이미지를 확대/축소하기 위해 집어 넣을 수 있으며, 모든 것이 잘 작동하는 것처럼 보입니다.내 앱이 다시 시작될 때 동적으로 UIScrollView의 줌 레벨과 위치를 복원 하시겠습니까?

그러나 내 응용 프로그램을 종료했다가 다시 실행하면 UIScrollView은 원본 확대/축소 레벨 ("가로 세로 적합"모드로 크기 조정하여 현재 전체 이미지를 표시하도록 설정되어 있음)에서 이미지를 다시 표시합니다. .

내 앱을 다시 실행하고 앱이 종료되었을 때 설정된 매개 변수와 동일한 매개 변수를 사용하여 UIScrollView을 다시 열 수있게하고 싶습니다. 따라서 내 이미지가 현재 최대로 확대되어 있고 왼쪽 하단으로 스크롤하면 앱을 다시 열 때보기가됩니다.

어떻게하면됩니까?

답변

2

프로그래밍 방식으로 UIScrollView를 확대/축소하는 방법을 발견했습니다. 이렇게하면 시작시 원하는 줌 레벨을 설정할 수 있습니다.

샘플 코드는 필요한 확대/축소 마법을 캡슐화하는 ZoomScrollView 클래스와 함께 UIScrollView 확대/축소 작동 방법 및 이유에 대한 자세한 설명을 github.com/andreyvit/ScrollingMadness/에서 볼 수 있습니다.

2

누군가가 얼마 전에이 질문을했는데, the answer을 좋아할 거라고 생각하지 않습니다. 잘하면 더 나은 것을 얻을 수 있기를 바랍니다.

3

보기의 .transform 속성을 확인하십시오. 확대 한 경우 수정해야합니다. 다음 출시 때 저장하고 복원하십시오.

1

나는 이렇게한다 : zoomlevel (myScrollview.zoomScale)과 contentview frame origin을 저장하지 않을 때.

다시 열면 줌 배율을 설정할 수 있습니다. 그렇지 않으면 경계가 올바르지 않기 때문에 컨텐츠 크기를 새로운 줌 레벨로 설정해야합니다.

[myScrollView setContentOffset:savedFrameOrigin animated:YES]; 
:
[myScrollview setZoomScale:savedZoomScale]; 
    CGSize newsize = CGSizeMake(origsize.width * savedZoomScale, 
           origsize.height * savedZoomScale); 
    myScrollview.contentSize = newsize; 

오프셋 설정하려면
관련 문제