PublishConfirmPhotoController.swift 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. //
  2. // PublishConfirmPhotoController.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/6/20.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. import RxSwift
  10. import Photos
  11. class PublishConfirmPhotoController: BaseViewController {
  12. var photoImg: UIImage? {
  13. didSet {
  14. photoImageView.image = self.photoImg
  15. }
  16. }
  17. typealias PubImgClosure = (_ selectedAssetArray: Array<UIImage>) -> Void
  18. var pubImgClosure: PubImgClosure?
  19. override func viewDidLoad() {
  20. super.viewDidLoad()
  21. setupViews()
  22. setupLayouts()
  23. }
  24. override func setupViews() {
  25. navigationBar.isHidden = true
  26. view.addSubview(photoImageView)
  27. view.addSubview(retakeBtn)
  28. view.addSubview(usePhotoBtn)
  29. }
  30. override func setupLayouts() {
  31. photoImageView.snp.makeConstraints { (make) in
  32. make.edges.equalToSuperview()
  33. }
  34. retakeBtn.snp.makeConstraints { (make) in
  35. make.left.equalTo(photoImageView.snp_left)
  36. make.bottom.equalTo(-kSafeTabBarHeight)
  37. make.width.equalTo(125)
  38. make.height.equalTo(48)
  39. }
  40. usePhotoBtn.snp.makeConstraints { (make) in
  41. make.right.equalTo(photoImageView.snp_right)
  42. make.bottom.equalTo(-kSafeTabBarHeight)
  43. make.width.equalTo(125)
  44. make.height.equalTo(48)
  45. }
  46. }
  47. private lazy var photoImageView: UIImageView = {
  48. let photoImageView = UIImageView()
  49. return photoImageView
  50. }()
  51. private lazy var retakeBtn: UIButton = {
  52. let retakeBtn = UIButton(type: UIButton.ButtonType.custom)
  53. retakeBtn.setTitle("重拍", for: .normal)
  54. retakeBtn.setTitleColor(kffffffColor, for: .normal)
  55. retakeBtn.titleLabel?.font = kMediumFont15
  56. retakeBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
  57. self?.dismiss(animated: true, completion: nil)
  58. }).disposed(by: disposeBag)
  59. return retakeBtn
  60. }()
  61. private lazy var usePhotoBtn: UIButton = {
  62. let usePhotoBtn = UIButton(type: UIButton.ButtonType.custom)
  63. usePhotoBtn.setTitle("使用照片", for: .normal)
  64. usePhotoBtn.setTitleColor(kffffffColor, for: .normal)
  65. usePhotoBtn.titleLabel?.font = kMediumFont15
  66. usePhotoBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
  67. PHPhotoLibrary.shared().performChanges({
  68. }, completionHandler: { (success, error) in
  69. // 写入相册成功后,回到主线程进行流程
  70. DispatchQueue.main.async {
  71. if success != true{
  72. SwiftProgressHUD.shared().showText("保存失败")
  73. return
  74. }
  75. // 保存成功,跳转至发布
  76. self?.dismiss(animated: false, completion: nil)
  77. let imageArr: Array<UIImage> = [self!.photoImg!]
  78. if let pubImgClosure = self?.pubImgClosure {
  79. pubImgClosure(imageArr)
  80. }
  81. }
  82. })
  83. }).disposed(by: disposeBag)
  84. return usePhotoBtn
  85. }()
  86. }