BSZoomGridScrollView 0.2.0

BSZoomGridScrollView 0.2.0

BRCountDownView 维护。



BSZoomGridScrollView

CI Status Version License Platform

BSZoomGridScrollView 是一个强大、纯 Swift 的 iOS UI 框架,提供具有以下功能的网格滚动视图:包含可缩放的图像数组,跟踪您的触摸区域。

屏幕截图

Alt Text

BSZoomGridScrollView Screenshot

关于它如何工作的 YouTube 视频链接
link0

快速了解

/// 🥳 # Step1: let's import!
import BSZoomGridScrollView

struct ContentView: View {
    @State var showSelectedImageView = false
    @State var selectedImage: UIImage?

    var itemsToZoom: [Any] = {
        var images = [UIImage]()
        for i in 0...29 {
            images.append(UIImage(named: "s\(i)") ?? UIImage())
        }
        return images
    }()
    
    var body: some View {
        /// 😊 # Step2. That's it. completed!
        BSZoomGridScrollView(itemsToZoom: itemsToZoom,
                             powerOfZoomBounce: .regular,
                             scrollEnableButtonTintColor: .blue,
                             scrollEnableButtonBackgroundColor: .black,
                             isBeingDraggingOnItem:{ draggingImage in
                                ///
                             },
                             didTapOnItem: { tapImage in
                                ///
                             },
                             didLongPressItem: { longPressedImage in
                               ///
                             },
                             didFinishDraggingOnItem: { draggedFinalImage in
                               ///
                             })
        .edgesIgnoringSafeArea(.all)
    }
}

特点

  • 专为 SwiftUI 设计,支持 100% SwiftUI。
  • 提供开箱即用的复杂网格滚动视图 UI。
  • 在网格滚动视图中跟踪用户的触摸区域,为元素提供缩放功能。
  • BSZoomGridScrollView 将返回用户选择并通过内部长按和拖动手势检测到的图像,这些功能均为开箱即用。
  • 可以根据列数、行数、缩放效果以及您想要在网格中显示的图像来定制网格 UI。

示例

要运行示例项目,请克隆仓库,然后首先从示例目录运行pod install。它包括了UIKit和SwiftUI的示例。

要求

  • iOS 13.0 或更高版本
  • Swift 5.0 或更高版本
  • Xcode 11.0 或更高版本

开始使用

  • SwiftUI
/// To use BSZoomGridScrollView in a SwiftUI project,
/// Please, Follow steps written in the comments with Icon that will help you pay attention like 😀.

import SwiftUI

/// 🥳 # Step1: let's import!
import BSZoomGridScrollView

struct ContentView: View {
    @State var showSelectedImageView = false
    @State var selectedImage: UIImage?

    var itemsToZoom: [Any] = {
        var images = [UIImage]()
        for i in 0...29 {
            images.append(UIImage(named: "s\(i)") ?? UIImage())
        }
        return images
    }()
    
    var body: some View {
        /// 😊 # Step2. That's it. completed!
        BSZoomGridScrollView(itemsToZoom: itemsToZoom,
                             powerOfZoomBounce: .regular,
                             scrollEnableButtonTintColor: .blue,
                             scrollEnableButtonBackgroundColor: .black,
                             isBeingDraggingOnItem:{ draggingImage in
                                ///
                             },
                             didTapOnItem: { tapImage in
                                ///
                             },
                             didLongPressItem: { longPressedImage in
                               ///
                             },
                             didFinishDraggingOnItem: { draggedFinalImage in
                               ///
                             })
        .edgesIgnoringSafeArea(.all)
    }
}
  • UIKit
///
/// To use BSZoomGridScrollView,
/// Please, Follow steps written in the comments with icon like 😀.
///

import SwiftUI
import UIKit

///
// 😚 #Step1: import BSZoomGridScrollView!
///
import BSZoomGridScrollView

class ViewController: UIViewController {
    ///
    // prepare any item array to feed to BSZoomGridScrollViewController.
    ///
    private var itemsToZoom: [Any] = {
        return (0...1500).compactMap { _ in UIImage(systemName: "smiley") }
    }()
    
    
    ///
    // 😋 #Step2: declare BSZoomGridScrollView
    ///
    private lazy var zoomGridScrollViewController: BSZoomGridScrollViewController = { [unowned self] in
        ///
        /// It can be used on both SwiftUI and UIKit.
        /// To see how it works on SwiftUI,
        /// please refer to comments in SwiftUI directory -> ContentView.swift
        ///
        return BSZoomGridScrollViewController(itemsToZoom: self.itemsToZoom,
                                              powerOfZoomBounce: .regular,
                                              scrollEnableButtonTintColor: .black,
                                              scrollEnableButtonBackgroundColor: .white,
                                              isBeingDraggingOnItem:{ [unowned self] draggingImage in
                                                 ///
                                              },
                                              didTapOnItem: { [unowned self] tapImage in
                                                 ///
                                              },
                                              didLongPressItem: { [unowned self] longPressedImage in
                                                ///
                                              },
                                              didFinishDraggingOnItem: { [unowned self] draggedFinalImage in
                                                ///
                                              })
    }()
    
    ///
    // 😁 #Step3: Present it!
    ///
    @IBAction func goToBSZoomGridScrollView(_ sender: Any) {
        ///
        // 😎 That's all. well done.
        ///
        self.present(zoomGridScrollViewController,
                     animated: true,
                     completion: nil)
    }
    
    ///
    // MARK: - ViewController LifeCycle Methods
    ///
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}


安装

有四种方式在项目中使用BSZoomGridScrollView:

  • 使用CocoaPods
  • 使用Swift Package Manager
  • 手动安装(构建框架或嵌入Xcode项目)

使用CocoaPods安装

CocoaPods是一个Objective-C的依赖管理器,它可以自动化并简化在项目中使用第三方库的过程。有关更多详情,请参阅入门部分。

Podfile

首先,

pod 'BSZoomGridScrollView'

然后在您的根项目中,

pod install

使用 Swift Package Manager (从 Xcode 11 开始)

Swift Package Manager (SwiftPM) 是一个用于管理 Swift 代码以及 C 系列依赖的工具。从 Xcode 11 开始,SwiftPM 已经原生集成到 Xcode 中。

BSZoomGridScrollView 从版本 5.1.0 开始支持 SwiftPM。要使用 SwiftPM,您应使用 Xcode 11 打开您的项目。点击 文件 -> Swift 包 -> 添加包依赖,输入 BSZoomGridScrollView 仓库的 URL。或者,您可以使用 GitHub 账户登录 Xcode,直接输入 BSZoomGridScrollView 进行搜索。

选择包后,您可以选择依赖类型(标记版本、分支或提交)。然后 Xcode 将为您设置所有必需的内容。

如果您是框架的作者,并将 BSZoomGridScrollView 作为依赖项使用,请更新您的 Package.swift 文件

let package = Package(
    dependencies: [
        .package(url: "https://github.com/boraseoksoon/BSZoomGridScrollView", from: "0.1.1")
    ],
    // ...
)

作者

[email protected]

许可证

BSZoomGridScrollView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。

参考

PhotoCell : 一个你可以免费下载你喜欢的照片的 iOS 浏览应用。