PublishConfirmPhotoNewViewController.swift 3.8 KB

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