MOLiveGoBtnView.swift 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // MOLiveGoBtnView.swift
  3. // MiMoLive
  4. //
  5. // Created by SuperC on 2025/9/25.
  6. //
  7. import Foundation
  8. import UIKit
  9. @objcMembers
  10. class MOLiveGoBtnView: UIView{
  11. public var btnClickBlock: (() -> Void)?
  12. override init(frame: CGRect) {
  13. super.init(frame: frame)
  14. setupViews()
  15. }
  16. required init?(coder: NSCoder) {
  17. fatalError("init(coder:) has not been implemented")
  18. }
  19. private lazy var bgImgView: UIImageView = {
  20. let view = UIImageView()
  21. view.image = commonGradientBg
  22. view.contentMode = .scaleAspectFill
  23. return view
  24. }()
  25. private lazy var actionBtn: BigBtn = {
  26. let btn : BigBtn = BigBtn.init(type: .custom)
  27. btn.addTarget(self, action: #selector(actionClickAction), for: .touchUpInside)
  28. return btn
  29. }()
  30. private lazy var liveImg: UIImageView = {
  31. let view = UIImageView()
  32. let path = Bundle.main.path(forResource: "icon_live_pk_go", ofType: "webp")
  33. if let path {
  34. view.sd_setImage(with: URL(fileURLWithPath: path))
  35. } else {
  36. view.isHidden = true
  37. }
  38. return view
  39. }()
  40. private lazy var rightImg: UIImageView = {
  41. let view = UIImageView()
  42. view.image = UIImage(named: "v_2_mine_white_right")
  43. return view
  44. }()
  45. private lazy var titleLab: UILabel = {
  46. let titleLab = UILabel()
  47. titleLab.text = "LIVE"
  48. titleLab.textColor = .init(hex: "#FFFFFF")
  49. titleLab.font = .poppinsBoldFont(11)
  50. titleLab.textAlignment = .center
  51. return titleLab
  52. }()
  53. }
  54. extension MOLiveGoBtnView{
  55. @objc
  56. private func actionClickAction() {
  57. btnClickBlock?()
  58. }
  59. }
  60. extension MOLiveGoBtnView {
  61. private func setupViews() {
  62. self.layer.cornerRadius = 8.0
  63. self.layer.masksToBounds = true
  64. self.addSubview(self.bgImgView)
  65. self.addSubview(self.liveImg)
  66. self.addSubview(self.rightImg)
  67. self.addSubview(self.titleLab)
  68. self.addSubview(self.actionBtn)
  69. bgImgView.snp.makeConstraints { make in
  70. make.edges.equalTo(self)
  71. }
  72. liveImg.snp.makeConstraints { make in
  73. make.width.height.equalTo(12)
  74. make.leading.equalToSuperview().offset(6)
  75. make.centerY.equalToSuperview()
  76. }
  77. rightImg.snp.makeConstraints { make in
  78. make.width.height.equalTo(10)
  79. make.trailing.equalToSuperview().offset(-6)
  80. make.centerY.equalToSuperview()
  81. }
  82. titleLab.snp.makeConstraints { make in
  83. make.leading.equalTo(liveImg.snp.trailing).offset(2)
  84. make.centerY.equalToSuperview()
  85. make.trailing.equalTo(rightImg.snp.leading).offset(-2)
  86. }
  87. actionBtn.snp.makeConstraints { make in
  88. make.edges.equalToSuperview()
  89. }
  90. }
  91. }
  92. //import SwiftUI
  93. //
  94. //struct MOLiveGoViewPreview: UIViewRepresentable {
  95. // func makeUIView(context: Context) -> some UIView {
  96. // let view = UIView()
  97. // view.backgroundColor = .black
  98. // let list = MOLiveGoBtnView()
  99. // view.addSubview(list)
  100. // list.snp.makeConstraints { make in
  101. // make.leading.centerY.equalToSuperview()
  102. // make.height.equalTo(24)
  103. // make.width.equalTo(65)
  104. // }
  105. //
  106. // return view
  107. // }
  108. //
  109. // func updateUIView(_ uiView: UIViewType, context: Context) { }
  110. //}
  111. //
  112. //#Preview {
  113. // MOLiveGoViewPreview()
  114. //}