Blame view
App/camera/ConfirmViewController/MyConfirmViewController.swift
4.83 KB
1341bf603
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import UIKit import Photos public class MyConfirmViewController: UIViewController { let imageView = UIImageView() var vBoard: Board! @IBOutlet weak var cancelButton: UIButton! @IBOutlet weak var confirmButton: UIButton! public var userData: Any? public var onComplete: CameraViewCompletion? var asset: PHAsset! public init(asset: PHAsset) { self.asset = asset super.init(nibName: "MyConfirmViewController", bundle: CameraGlobals.shared.bundle) } public override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.black imageView.contentMode = .scaleAspectFit view.insertSubview(imageView, at: 0) configUserData() guard let asset = asset else { return } let spinner = showSpinner() disable() _ = SingleImageFetcher() .setAsset(asset) .setTargetSize(largestPhotoSize()) .onSuccess { image in self.configureWithImage(image) self.hideSpinner(spinner) self.enable() } .onFailure { error in self.hideSpinner(spinner) } .fetch() } fileprivate func configUserData() { |
fbd62afcf
|
45 46 47 48 49 50 51 52 53 54 55 56 |
if let boardObj = userData as? BoardObj, let shootItem = boardObj.shootItem, let ctruong = boardObj.cTruong, let singboard = ctruong.signboard { if (singboard > 0) { vBoard = Board() vBoard.translatesAutoresizingMaskIntoConstraints = false self.view.insertSubview(vBoard, at: 1) NSLayoutConstraint.activate([vBoard.topAnchor.constraint(equalTo: view.topAnchor), vBoard.leftAnchor.constraint(equalTo: view.leftAnchor), vBoard.rightAnchor.constraint(equalTo: view.rightAnchor), vBoard.bottomAnchor.constraint(equalTo: view.bottomAnchor)]) vBoard.initData(ctruong: ctruong, shootItem: shootItem); } } |
1341bf603
|
57 58 59 60 61 |
} public override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() imageView.frame = view.frame |
1341bf603
|
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
} //region utils ======== private func configureWithImage(_ image: UIImage) { buttonActions() imageView.image = image imageView.sizeToFit() view.setNeedsLayout() } private func buttonActions() { confirmButton.action = { [weak self] in self?.confirmPhoto() } cancelButton.action = { [weak self] in self?.cancel() } } internal func cancel() { onComplete?(nil, nil) } internal func confirmPhoto() { disable() imageView.isHidden = true let spinner = showSpinner() var fetcher = SingleImageFetcher() .onSuccess { image in self.onComplete?(image, self.asset) self.hideSpinner(spinner) self.enable() } .onFailure { error in self.hideSpinner(spinner) self.showNoImageScreen(error) } .setAsset(asset) fetcher = fetcher.fetch() } func showSpinner() -> UIActivityIndicatorView { let spinner = UIActivityIndicatorView() spinner.activityIndicatorViewStyle = .white spinner.center = view.center spinner.startAnimating() view.addSubview(spinner) view.bringSubview(toFront: spinner) return spinner } func hideSpinner(_ spinner: UIActivityIndicatorView) { spinner.stopAnimating() spinner.removeFromSuperview() } func disable() { confirmButton.isEnabled = false } func enable() { confirmButton.isEnabled = true } func showNoImageScreen(_ error: NSError) { let permissionsView = PermissionsView(frame: view.bounds) let desc = localizedString("error.cant-fetch-photo.description") permissionsView.configureInView(view, title: error.localizedDescription, descriptiom: desc, completion: cancel) } public required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } public override var prefersStatusBarHidden: Bool { return true } public override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { return UIStatusBarAnimation.slide } override open var supportedInterfaceOrientations: UIInterfaceOrientationMask { return UIInterfaceOrientationMask.landscape } //endregion } public class BoardObj { |
fbd62afcf
|
153 154 |
var cTruong: CongTruong?; var shootItem: ShootItem?; |
1341bf603
|
155 |
|
fbd62afcf
|
156 157 158 159 |
init(cTruong: CongTruong?, shootItem: ShootItem?) { self.cTruong = cTruong; self.shootItem = shootItem; } |
1341bf603
|
160 |
} |