앱이 다시 시작될 때 Uiscrollview의 줌 레벨과 위치를 동적으로 복원하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/654845

문제

내 응용 프로그램은 a로 구성됩니다 UIImageView 내부 a UIScrollView, 그리고 나는 그것의 큰 이미지를 표시합니다. 스크롤보기를 사용하면 사용자가 이미지를 확대/축소하기 위해 꼬집어지고 모든 것이 잘 작동하는 것 같습니다.

그러나 내 응용 프로그램이 종료 된 다음 다시 시작되면 UIScrollView 이미지를 원래 줌 레벨로 다시 표시합니다 (현재 "Aspect Fit"모드로 스케일링하여 전체 이미지를 표시하도록 설정되어 있음).

나는 정말로 내 앱을 다시 시작하고 UIScrollView 앱이 종료되었을 때 설정된 것과 동일한 매개 변수로 다시 열립니다. 따라서 내 이미지가 현재 최대로 확대되고 왼쪽 하단까지 스크롤되면 앱을 다시 열 때보기가되어야합니다.

어떻게 할 수 있습니까?

도움이 되었습니까?

해결책

UiscrollView를 프로그래밍 방식으로 확대하는 방법을 찾았습니다. 이렇게하면 시작시 원하는 줌 레벨을 설정하는 데 도움이 될 수 있습니다.

샘플 코드는 ZoomscrollView 클래스와 함께 필요한 확대 / 축소 매직을 캡슐화하고 UiscrollView Zooming Works가 어떻게 (및 이유에 대한 자세한 토론을 할 수 있습니다. github.com/andreyvit/scrollingmadness/.

다른 팁

뷰의 .Transform 속성을 확인하십시오. 확대 된 경우 수정해야합니다. 다음 출시시 저장하고 복원하십시오.

누군가가 얼마 전에 이것을 물었습니다. 그러나 나는 당신이 좋아하지 않을 것 같지 않습니다 대답. 바라건대 당신은 더 나은 것을 얻을 수 있기를 바랍니다.

나는 다음과 같이합니다 : 당신이 그만두면 줌 레벨 (myscrollview.zoomscale)과 contentView 프레임 원점을 저장하십시오.

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

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

오프셋을 설정하려면 :

[myScrollView setContentOffset:savedFrameOrigin animated:YES];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top