TSMirrorCameraView.swift 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. //
  2. // TSMirrorCameraView.swift
  3. // Girly
  4. //
  5. // Created by 100Years on 2025/1/8.
  6. //
  7. class TSMirrorCameraView: TSBaseView {
  8. private var shwoWidth:CGFloat = k_ScreenWidth - 32
  9. var imageNamed:String = "mirror_round" {
  10. didSet{
  11. if UIImage(named: imageNamed) != nil {
  12. setShapeView(shapeView: cameraView)
  13. }
  14. }
  15. }
  16. lazy var noPermissionView: TSMirrorCameraNoPermissionView = {
  17. let noPermissionView = TSMirrorCameraNoPermissionView()
  18. noPermissionView.isHidden = true
  19. return noPermissionView
  20. }()
  21. // lazy var cameraManager: CameraManager = {
  22. // let cameraManager = CameraManager()
  23. // cameraManager.cameraDevice = CameraDevice.front
  24. // cameraManager.cameraOutputQuality = .high
  25. // cameraManager.showAccessPermissionPopupAutomatically = true
  26. // return cameraManager
  27. // }()
  28. lazy var cameraView: UIView = {
  29. let cameraView = UIView()
  30. cameraView.frame = CGRect(x: 0, y: 0, width: shwoWidth, height: shwoWidth)
  31. return cameraView
  32. }()
  33. lazy var notDeterminedView: UIView = {
  34. let notDeterminedView = UIView()
  35. return notDeterminedView
  36. }()
  37. override func creatUI() {
  38. contentView.addSubview(cameraView)
  39. cameraView.snp.makeConstraints { make in
  40. make.leading.equalTo(0)
  41. make.trailing.equalTo(0)
  42. make.top.equalTo(0)
  43. make.bottom.equalTo(0)
  44. }
  45. contentView.addSubview(noPermissionView)
  46. noPermissionView.snp.makeConstraints { make in
  47. make.top.equalTo(111)
  48. make.leading.trailing.equalTo(0)
  49. }
  50. self.layoutIfNeeded()
  51. // cameraManager.askUserForCameraPermission { [weak self] permissionGranted in
  52. // guard let self = self else { return }
  53. //
  54. // if permissionGranted {
  55. // noPermissionView.isHidden = true
  56. // self.addCameraToView()
  57. // kDelayMainShort {
  58. // self.setShapeView(shapeView: self.cameraView)
  59. // }
  60. // } else {
  61. // noPermissionView.isHidden = false
  62. // }
  63. // }
  64. }
  65. func setShapeView(shapeView:UIView){
  66. if let image = UIImage(named: imageNamed) {
  67. shapeView.setImageMask(image: image)
  68. }
  69. }
  70. fileprivate func addCameraToView() {
  71. // cameraManager.addPreviewLayerToView(cameraView)
  72. // cameraManager.showErrorBlock = { [weak self] (erTitle: String, erMessage: String) -> Void in
  73. // debugPrint(erMessage)
  74. // }
  75. }
  76. func startCapture() {
  77. // cameraManager.resumeCaptureSession()
  78. }
  79. func endCapture() {
  80. // cameraManager.stopCaptureSession()
  81. }
  82. }
  83. class TSMirrorCameraNoPermissionView: TSBaseView {
  84. lazy var imageView: UIImageView = {
  85. let imageView = UIImageView.createImageView(imageName: "nopermission")
  86. return imageView
  87. }()
  88. lazy var textLabel: UILabel = {
  89. let textLabel = UILabel.createLabel(text: "No camera permission. Can't look in the mirror.",font: .font(size: 14.0),textColor: .assist,numberOfLines: 0)
  90. textLabel.setLineSpacing(4,alignment: .center)
  91. return textLabel
  92. }()
  93. lazy var submitBtn: UIButton = {
  94. let btn = createNormalSubmitBtn(title: "Open Now") {
  95. UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
  96. }
  97. btn.cornerRadius = 22
  98. return btn
  99. }()
  100. override func creatUI() {
  101. contentView.addSubview(imageView)
  102. imageView.snp.makeConstraints { make in
  103. make.centerX.equalToSuperview()
  104. make.top.equalTo(0)
  105. make.width.equalTo(120)
  106. make.height.equalTo(120)
  107. }
  108. contentView.addSubview(textLabel)
  109. textLabel.snp.makeConstraints { make in
  110. make.centerX.equalToSuperview()
  111. make.top.equalTo(imageView.snp.bottom).offset(14.0)
  112. make.left.equalTo(74)
  113. make.right.equalTo(-74)
  114. }
  115. contentView.addSubview(submitBtn)
  116. submitBtn.snp.makeConstraints { make in
  117. make.centerX.equalToSuperview()
  118. make.top.equalTo(textLabel.snp.bottom).offset(38.0)
  119. make.left.equalTo(50)
  120. make.right.equalTo(-50)
  121. make.height.equalTo(44.0)
  122. make.bottom.equalToSuperview()
  123. }
  124. }
  125. }