InteractiveImageView 1.0.28

InteractiveImageView 1.0.28

Egzon Pllana 维护。



  • Egzon Pllana

“InteractiveImageView”

CocoaPods Carthage Swift Package Manager

欢迎使用 Interactive Image View,这是一个简单库,提供了一种更易于与视图交互的方式,如滚动、缩放和裁剪。其核心支持两种图像内容模式,第一种始终是正方形,第二种是自定义。例如,您可以使用像Instagram一样的比例,比如2:3或9:16,或任何自定义值。它基本上是一个围绕UIKit提供的UIScrollViewUIImageView API的薄包装。

功能

  • 在任何地方都可以当作UIView使用,无需呈现或配置ViewController。
  • 根据用户需求在当前位置裁剪图像。
  • 在2:3或1:1之间切换比例,就像Instagram一样。
  • 可以扩展以支持不同的比例。
  • 在x和y轴上滚动图像视图。
  • 双击来放大或缩小。
  • 旋转图像给定的度数。
  • 缩放图像视图。

安装

  1. 添加一个视图,并将视图的类设置为InteractiveImageView
  2. 在您的视图控制器中,导入InteractiveImageView。
  3. 连接视图输出,通过interactiveImageView.configure(...)配置它
  4. 设置代理:interactiveImageView.delegate = self
  5. 监听代理观察器:extension ViewController: InteractiveImageViewDelegate { ... }

方法

配置视图

if let image = UIImage(named: "image.png") {
    interactiveImageView.configure(withNextContentMode: .heightFill,
                      withFocusOffset: .center,
                      withImage: image)
}

无需委托方法裁剪并获取图像

let croppedImage = interactiveImageView.cropAndGetImage()

获取未做任何修改的原始图像。

let originalImage = interactiveImageView.getOriginalImage()

仅在ImageView中设置图像。

interactiveImageView.setImage(UIImage)

切换图像内容模式

interactiveImageView.toggleImageContentMode()

旋转图像

interactiveImageView.rotateImage(UIImage, keepChanges: Bool)

用户手势

双击缩放手势

interactiveImageView.isDoubleTapToZoomAllowed = false

滚动视图

interactiveImageView.isScrollEnabled = false

捏合放大手势

interactiveImageView.isPinchAllowed = false

委托方法

protocol InteractiveImageViewDelegate: AnyObject {
    func didCropImage(image: UIImage, fromView: InteractiveImageView)
    func didScrollAt(offset: CGPoint, scale: CGFloat, fromView: InteractiveImageView)
    func didZoomAt(offset: CGPoint, scale: CGFloat, fromView: InteractiveImageView)
    func didFail(_ fail: IIVFailType)
}

示例项目

您可以从项目 InteractiveImageViewExample 中下载并运行。

预览

“InteractiveImageView”

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 InteractiveImageView 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它。

pod 'InteractiveImageView'

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖并提供二进制框架。要使用 Carthage 将 InteractiveImageView 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它。

github "egzonpllana/InteractiveImageView"

通过 Manifest 文件使用 Swift Package Manager

Swift Package Manager 是自动化 Swift 代码分发的工具,并集成到 swift 编译器中。

一旦您设置了 Swift 包,将 InteractiveImageView 添加为依赖与将其添加到您的 Package.swift 文件的 dependencies 值一样简单。

dependencies: [
    .package(url: "https://github.com/egzonpllana/InteractiveImageView.git", .upToNextMajor(from: "1.0.0"))
]

通过 XCode 使用 Swift Package Manager

要将 InteractiveImageView 添加为依赖到您的 Xcode 项目中,请选择文件 > Swift 包 > 添加包依赖并输入仓库 URL。

https://github.com/egzonpllana/InteractiveImageView.git

背景

为什么会有这个项目?在构建一个基于给定宽高比提供交互式图像查看的项目时,我未能找到一个提供以下所有功能且无需viewController即可工作的解决方案,于是我构建了它。

问题或反馈?

欢迎提交问题,或在我@egzonpllana on LinkedIn上联系我。