MVMineHeadInfoView.swift 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // MVMineHeadInfoView.swift
  3. // MusicVideoPlus
  4. //
  5. // Created by SanW on 2021/6/23.
  6. //
  7. import BFFramework
  8. import UIKit
  9. class MVMineHeadInfoView: UIView {
  10. private var leftMargin: CGFloat = 0
  11. lazy var iconImageView: UIImageView = {
  12. let iconImageView = UIImageView()
  13. iconImageView.contentMode = .scaleAspectFill
  14. iconImageView.clipsToBounds = true
  15. iconImageView.backgroundColor = UIColor.white
  16. return iconImageView
  17. }()
  18. lazy var nickNameLab: UILabel = {
  19. let nickNameLab = UILabel()
  20. nickNameLab.textColor = .black
  21. nickNameLab.numberOfLines = 1
  22. nickNameLab.lineBreakMode = .byCharWrapping
  23. nickNameLab.font = UIFont.systemFont(ofSize: 24, weight: .bold)
  24. return nickNameLab
  25. }()
  26. lazy var productsLabel: UILabel = {
  27. let productsLabel = UILabel()
  28. productsLabel.textColor = UIColor(white: 0, alpha: 0.5)
  29. productsLabel.numberOfLines = 1
  30. productsLabel.lineBreakMode = .byCharWrapping
  31. productsLabel.font = UIFont.systemFont(ofSize: 14, weight: .semibold)
  32. return productsLabel
  33. }()
  34. init(frame: CGRect, margin: CGFloat = 16) {
  35. super.init(frame: frame)
  36. leftMargin = margin
  37. addSubview(iconImageView)
  38. addSubview(nickNameLab)
  39. addSubview(productsLabel)
  40. }
  41. required init?(coder _: NSCoder) {
  42. fatalError("init(coder:) has not been implemented")
  43. }
  44. override func layoutSubviews() {
  45. super.layoutSubviews()
  46. addData()
  47. addLayout()
  48. }
  49. func addData() {
  50. iconImageView.setNetImage(url: BFLoginUserInfo.shared.avatarUrl, placeholder: UIImage(named: "wode")!)
  51. nickNameLab.text = BFLoginUserInfo.shared.nickName
  52. updateProducts()
  53. }
  54. func updateProducts() -> Void {
  55. productsLabel.text = "\(Int(BFLoginUserInfo.shared.videos)?.changeUnit() ?? "0") 作品"
  56. }
  57. func addLayout() {
  58. let iconH: CGFloat = cDefaultMargin * 7
  59. let margin: CGFloat = 12
  60. iconImageView.addCorner(corner: iconH / 2)
  61. iconImageView.snp.makeConstraints { make in
  62. make.width.height.equalTo(iconH)
  63. make.top.equalToSuperview().offset(cDefaultMargin / 2)
  64. make.left.equalToSuperview().offset(leftMargin)
  65. }
  66. nickNameLab.snp.makeConstraints { make in
  67. make.left.equalTo(iconImageView.snp_right).offset(margin)
  68. make.right.equalToSuperview().offset(-leftMargin)
  69. make.centerY.equalTo(iconImageView).offset(-margin)
  70. }
  71. productsLabel.snp.makeConstraints { make in
  72. make.left.right.equalTo(nickNameLab)
  73. make.centerY.equalTo(iconImageView).offset(margin)
  74. }
  75. }
  76. }