Skip to content

Commit

Permalink
feat: add cropViewControllerDidImageTransformed (#222)
Browse files Browse the repository at this point in the history
add a new function cropViewControllerDidImageTransformed to CropViewControllerDelegate
  • Loading branch information
guoyingtao committed Oct 31, 2022
1 parent 1a48c8c commit 8fee217
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 7 deletions.
7 changes: 6 additions & 1 deletion Example/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ class ViewController: UIViewController, CropViewControllerDelegate {
return
}

let config = Mantis.Config()
var config = Mantis.Config()
config.cropToolbarConfig.toolbarButtonOptions = [.clockwiseRotate, .reset, .ratio, .horizontallyFlip]
let cropViewController = Mantis.cropViewController(image: image,
config: config)
cropViewController.delegate = self
Expand Down Expand Up @@ -273,6 +274,10 @@ class ViewController: UIViewController, CropViewControllerDelegate {
func cropViewControllerDidCancel(_ cropViewController: CropViewController, original: UIImage) {
dismiss(animated: true)
}

func cropViewControllerDidImageTransformed(_ cropViewController: CropViewController) {
print("image is transformed.")
}
}

extension ViewController: ImagePickerDelegate {
Expand Down
5 changes: 5 additions & 0 deletions Sources/Mantis/CropView/CropView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ class CropView: UIView {
scrollView.resetBy(rect: viewModel.cropBoxFrame)

imageContainer.frame = CGRect(x: 0, y: 0, width: scrollView.contentSize.width, height: scrollView.contentSize.height)

scrollView.contentOffset = CGPoint(x: (imageContainer.frame.width - scrollView.frame.width) / 2,
y: (imageContainer.frame.height - scrollView.frame.height) / 2)

Expand Down Expand Up @@ -777,6 +778,8 @@ extension CropView {

viewModel.reset(forceFixedRatio: forceFixedRatio)
resetUIFrame()
viewModel.setInitialStatus()

delegate?.cropViewDidBecomeUnResettable(self)
delegate?.cropViewDidEndResize(self)
}
Expand Down Expand Up @@ -850,11 +853,13 @@ extension CropView {
func horizontallyFlip() {
viewModel.horizontallyFlip.toggle()
flip(isHorizontal: true)
checkImageStatusChanged()
}

func verticallyFlip() {
viewModel.verticallyFlip.toggle()
flip(isHorizontal: false)
checkImageStatusChanged()
}

private func flip(isHorizontal: Bool = true, animated: Bool = true) {
Expand Down
2 changes: 0 additions & 2 deletions Sources/Mantis/CropView/CropViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ class CropViewModel: NSObject {

cropLeftTopOnImage = .zero
cropRightBottomOnImage = CGPoint(x: 1, y: 1)

setInitialStatus()
}

func rotateBy90(rotateAngle: CGFloat) {
Expand Down
10 changes: 6 additions & 4 deletions Sources/Mantis/CropViewController/CropViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,15 @@ public protocol CropViewControllerDelegate: AnyObject {
func cropViewControllerDidCancel(_ cropViewController: CropViewController, original: UIImage)

func cropViewControllerDidBeginResize(_ cropViewController: CropViewController)
func cropViewControllerDidEndResize(_ cropViewController: CropViewController, original: UIImage, cropInfo: CropInfo)
func cropViewControllerDidEndResize(_ cropViewController: CropViewController, original: UIImage, cropInfo: CropInfo)
func cropViewControllerDidImageTransformed(_ cropViewController: CropViewController)
}

public extension CropViewControllerDelegate where Self: UIViewController {
func cropViewControllerDidFailToCrop(_ cropViewController: CropViewController, original: UIImage) {}
func cropViewControllerDidBeginResize(_ cropViewController: CropViewController) {}
func cropViewControllerDidEndResize(_ cropViewController: CropViewController, original: UIImage, cropInfo: CropInfo) {}
func cropViewControllerDidEndResize(_ cropViewController: CropViewController, original: UIImage, cropInfo: CropInfo) {}
func cropViewControllerDidImageTransformed(_ cropViewController: CropViewController) {}
}

public enum CropViewControllerMode {
Expand Down Expand Up @@ -513,10 +515,10 @@ extension CropViewController {
}
}

extension CropViewController: CropViewDelegate {

extension CropViewController: CropViewDelegate {
func cropViewDidBecomeResettable(_ cropView: CropView) {
cropToolbar.handleCropViewDidBecomeResettable()
delegate?.cropViewControllerDidImageTransformed(self)
}

func cropViewDidBecomeUnResettable(_ cropView: CropView) {
Expand Down

0 comments on commit 8fee217

Please sign in to comment.