SMScrollView
is a subclass of UIScrollView
with extended functionality such as centering zoomed view, double-tap to zoom, scale to fit and more.
SMScrollView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "SMScrollView"
If you are not using CocoaPods, then just copy files from Pod/Classes
to your project.
- SMScrollView maintains the position of its zooming view returned by its
delegate
'sviewForZoomingInScrollView:
in the center of its own boundaries. - SMScrollView has double-tap gesture to zoom in and out its zooming view. Specifically, when its
zoomScale == minimumZoomScale
, it zooms-in the view to the tapped point and to the scale defined by by themaximumZoomScale
. Otherwise, whenzoomScale > minimumZoomScale
, it zooms-out to a scale defined by theminimumZoomScale
. The double-tap gesture is available through thedoubleTapGestureRecognizer
property to disable or adjust the gesture behaviour. - When SMScrollView's bounds are changed, for example due to a change in an interface orientation, then:
- If its
fitOnSizeChange == YES
, then its content is rescaled to fit its new size, up to the scale of 1.0, such that content is never stretched. - If
fitOnSizeChange == NO
, then the content point that was displayed in the center of its bounds before the size change, is kept in center after the size change. However, ifstickToBounds
property was set toYES
and the scroll-view was scrolled to one of its boundaries before the size change, then it is kept at these boundaries instead of keeping the center point in center.
- If its
SMScrollView is available under the MIT license. See the LICENSE file for more info.