WWCropViewController

main

Crop picture widget
William-Weng/WWCropViewController

WWCropViewController

Swift-5.6 iOS-14.0 Swift Package Manager-SUCCESS LICENSE

  • Crop picture widget.
  • 裁切圖片小工具.

dependencies: [
    .package(url: "https://github.com/William-Weng/WWCropViewController.git", .upToNextMajor(from: "1.0.0"))
]

Function - 可用函式

函式 功能
build() 建立WWCropViewController
cropPhoto() 裁切圖片
cropViewTypeSetting(_:) 設定縮放框比例 / 種類 (1:1 / 4:3 / 16:9)
recoverOriginalPhoto() 還原成一開始的照片
updateCropViewBackgroundColor(_:) 設定縮放框的底色
angleImagesSetting(_:) 設定縮放的四角圖示 (↖左上 / ↗右上 / ↙左下 / ↘右下)

Example

import UIKit
import WWPrint
import WWCropViewController

final class ViewController: UIViewController {
    
    @IBOutlet weak var containerView: UIView!
    
    private var cropViewController: WWCropViewController?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        containerViewSetting()
    }
    
    @IBAction func cropPhotoAction(_ sender: UIButton) { _ = cropViewController?.cropPhoto() }
    @IBAction func recoverPhotoAction(_ sender: UIButton) { _ = cropViewController?.recoverOriginalPhoto() }
    @IBAction func cropViewTypeAction1(_ sender: UIButton) { cropViewController?.cropViewTypeSetting(.rectangle) }
    @IBAction func cropViewTypeAction2(_ sender: UIButton) { cropViewController?.cropViewTypeSetting(.scaleRectangle(.to4_3)) }
    @IBAction func cropViewTypeAction3(_ sender: UIButton) { cropViewController?.cropViewTypeSetting(.scaleRectangle(.to9_16)) }
}

extension ViewController {
 
    private func containerViewSetting() {
        
        guard let viewController = WWCropViewController.build() else { return }
        
        cropViewController = viewController
        
        viewController.photo = #imageLiteral(resourceName: "Wallpaper")
        viewController.angleZoomViewImages = ([#imageLiteral(resourceName: "Angle_LeftTop"), #imageLiteral(resourceName: "Angle_RightTop"), #imageLiteral(resourceName: "Angle_LefttBottom"), #imageLiteral(resourceName: "Angle_RightBottom")])
        viewController.cropViewBackgroundColor = .blue.withAlphaComponent(0.3)
        viewController.cropViewType = .circle
        
        self._changeContainerView(to: viewController, at: containerView)
    }
}

extension UIViewController {
    
    /// [改變ContainerView](https://disp.cc/b/11-9XMd)
    /// - Parameters:
    ///   - oldViewController: UIViewController
    ///   - newViewController: UIViewController
    ///   - containerView: UIView
    func _changeContainerView(from oldViewController: UIViewController? = nil ,to newViewController: UIViewController, at containerView: UIView) {
        
        oldViewController?.willMove(toParent: nil)
        oldViewController?.view.removeFromSuperview()
        oldViewController?.removeFromParent()
        
        addChild(newViewController)
        containerView.addSubview(newViewController.view)
        newViewController.view.frame = containerView.frame
        newViewController.didMove(toParent: self)
    }
}

Description

  • Swift Tools 5.6.0
View More Packages from this Author

Dependencies

  • None
Last updated: Mon Apr 22 2024 08:00:00 GMT-0900 (Hawaii-Aleutian Daylight Time)