4

我的应用程序由一个UIImageView内部组成UIScrollView,我在其中显示一个大图像。滚动视图允许用户通过捏合来放大/缩小图像,这一切似乎都很好。

但是,当我的应用程序终止然后重新启动时,UIScrollView会再次以原始缩放级别显示图像(当前设置为显示整个图像,通过在“宽高比匹配”模式下缩放它)。

我真的很希望能够重新启动我的应用程序并使用UIScrollView与应用程序终止时设置的参数相同的参数重新打开。因此,如果我的图像当前放大到最大,并一直滚动到它的左下角,那应该是我再次打开应用程序时的视图。

我怎样才能做到这一点?

4

4 回答 4

3

检查视图的 .transform 属性。如果放大,则应进行修改。保存并在下次启动时恢复。

于 2009-03-24T21:44:11.057 回答
2

不久前有人问过这个问题,但我想你不会喜欢这个答案。希望你能得到一个更好的。

于 2009-03-17T16:46:05.030 回答
2

我找到了一种以编程方式缩放 UIScrollView 的方法。这可以帮助您在启动时设置所需的缩放级别。

示例代码以及封装所需缩放魔术的 ZoomScrollView 类以及关于 UIScrollView 缩放如何(以及为什么)工作的详细讨论可在github.com/andreyvit/ScrollingMadness/上获得。

于 2009-05-07T22:22:18.383 回答
2

我这样做:当您退出时保存缩放级别(myScrollview.zoomScale)和内容视图框架原点。

重新打开时,您可以设置缩放比例。您还必须将内容大小设置为新的缩放级别,否则边界不正确。

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

要设置偏移量:

[myScrollView setContentOffset:savedFrameOrigin animated:YES];
于 2010-03-02T19:57:35.690 回答