ModifyDataAvatarView.swift 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //
  2. // ModifyDataAvatarView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/6/19.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. class ModifyDataAvatarView: BaseView {
  10. typealias ImageUrlClosureName = (_ imgUrl: String) -> Void
  11. var imageUrlClosureName : ImageUrlClosureName?
  12. override func setupViews() {
  13. backgroundColor = .white
  14. addSubview(avatarButton)
  15. addSubview(editButton)
  16. }
  17. override func setupLayouts() {
  18. avatarButton.snp_makeConstraints { (make) in
  19. make.top.equalTo(20)
  20. make.centerX.equalToSuperview()
  21. make.size.equalTo(80)
  22. }
  23. editButton.snp_makeConstraints { (make) in
  24. make.top.equalTo(avatarButton.snp_bottom).offset(4)
  25. make.width.equalTo(64)
  26. make.height.equalTo(24)
  27. make.centerX.equalToSuperview()
  28. }
  29. }
  30. private lazy var avatarButton: UIButton = {
  31. let avatarButton = UIButton(type: UIButton.ButtonType.custom)
  32. avatarButton.setBackgroundImage(kImage(name: "default_avatar"), for: UIControl.State.normal)
  33. avatarButton.cornerRadius = 40
  34. avatarButton.masksToBounds = true
  35. avatarButton.rx.tap.subscribe(onNext: {
  36. [weak self] (data) in
  37. self?.alertPhotoAndCameraManager()
  38. }).disposed(by: disposeBag)
  39. return avatarButton
  40. }()
  41. private lazy var editButton : UIButton = {
  42. let editButton = UIButton(type: UIButton.ButtonType.custom)
  43. editButton.setTitle("更换头像", for: UIControl.State.normal)
  44. editButton.setTitleColor(k333333Color, for: UIControl.State.normal)
  45. editButton.layer.borderColor = kB4B4B4Color.cgColor
  46. editButton.layer.borderWidth = 1
  47. editButton.titleLabel?.font = kRegularFont12
  48. editButton.cornerRadius = 12
  49. editButton.masksToBounds = true
  50. editButton.rx.tap.subscribe(onNext: {
  51. [weak self] (data) in
  52. self?.alertPhotoAndCameraManager()
  53. }).disposed(by: disposeBag)
  54. return editButton
  55. }()
  56. func alertPhotoAndCameraManager() {
  57. PhotoAndCameraManager.shared().photoAndCameraManagerImageBlock = {
  58. [weak self] image in
  59. self?.configUploadSingleImgApi(imageArray: [image])
  60. }
  61. UIAlertController.showConfirmActionSheet(camera: { (cameraAction) in
  62. PhotoAndCameraManager.shared().authorizeCamera()
  63. }) { (albumAction) in
  64. PhotoAndCameraManager.shared().authorizePhoto()
  65. }
  66. }
  67. var userDetailModel: UserDetailModel? {
  68. didSet {
  69. avatarButton.kf.setBackgroundImage(with: kURLThumbnailsImage(name: userDetailModel?.avatar ?? "",size: kSize80x80Image), for: UIControl.State.normal, placeholder: kImage(name: "default_avatar"))
  70. }
  71. }
  72. }
  73. extension ModifyDataAvatarView {
  74. func configUploadSingleImgApi(imageArray: Array<UIImage>) {
  75. SwiftMoyaNetWorkServiceConfig.shared().configUploadSingleImgApi(imageArray: imageArray) {
  76. [weak self] (imageUrl) -> (Void) in
  77. self?.avatarButton.setBackgroundImage(imageArray[0], for: UIControl.State.normal)
  78. if let imageUrlClosureName = self?.imageUrlClosureName {
  79. imageUrlClosureName(imageUrl as! String)
  80. }
  81. }
  82. }
  83. }