A SwiftUI view modifier that provides pinch to zoom, double tap to zoom, and drag to pan functionalities

Zoomable

A SwiftUI view modifier that provides pinch to zoom, double tap to zoom, and drag to pan functionalities.

capture.mov

Features

  • Pinch to zoom
  • Double tap to zoom in and out
  • Drag to pan

Installation

Swift Package Manager

Please add the following URL in the Package Dependencies screen in Xcode.

https://github.com/ryohey/Zoomable.git

Usage

To use the Zoomable modifier in your SwiftUI view:

import YourLibraryName

struct ContentView: View {
    var body: some View {
        Image("your-image-name")
            .zoomable()
    }
}

Requirements

  • iOS 16.0 or later
  • SwiftUI

Caveats

  • iOS 16: Due to limitations with MagnificationGesture, during pinch-in actions, the zoom location is fixed to the top-left corner.
  • iOS 17 and later: This issue has been addressed and improved with the introduction of MagnifyGesture.

Contribution

Contributions are welcome! Please open an issue or submit a pull request.

License

MIT License

GitHub

View Github