How do I programmatically zoom a UIScrollView?

前端 未结 5 1431
臣服心动
臣服心动 2020-12-02 07:55

I\'d like to zoom and unzoom in ways the base class doesn\'t support.

For instance, upon receiving a double tap.

5条回答
  •  栀梦
    栀梦 (楼主)
    2020-12-02 08:30

    I'm answering my own question, after playing with things and getting it working.

    Apple has a very-simple example of this in their documentation on how to handle double taps.

    The basic approach to doing programmatic zooms is to do it yourself, and then tell the UIScrollView that you did it.

    • Adjust the internal view's frame and bounds.
    • Mark the internal view as needing display.
    • Tell the UIScrollView about the new content size.
    • Calculate the portion of your internal view that should be displayed after the zoom, and have the UIScrollView pan to that location.

    Also key: once you tell the UIScrollView about your new contents size it seems to reset its concept of the current zoom level. You are now at the new 1.0 zoom factor. So you'll almost certainly want to reset the minimum and maximum zoom factors.

提交回复
热议问题